08 (C语言课件)-指针.ppt

  1. 1、本文档共96页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08 (C语言课件)-指针

第8章 指针;8.1 指针的概念;当程序中要用它们的值时: y=i+j+k;;直接访问:直接使用存放该数据的变量名。;如:用pi, pj, pk来存放i, j, k的地址;显然,pi与i是通过i的地址联系起来的。;二、指针变量的定义; 明确一个概念:指针变量也有类型,因为类型涉及到所占单元数,也就是指针变量在计算时有所不同。例如:;重要概念: 指针变量也有各种类型(如上面所示),但指针变量的值只能是整型值。;(3) 将一个变量的地址(指针)赋给一个指针变量,用取地址运算符:;(4) 存取指针变量所指向变量(目标变量)的值: 用指针运算符*, 即:*x 为 i;三、指针变量的初始化; 但当用地址(指针变量)作参数时,作用为传址,与数组名类似。;程序运行结果:; 程序中,实参与形参共用同一个内存单元,通过修改地址所指的值来交换数据:;执行过程分析 (设a?10, b?20);a;1. 注意函数中p为普通变量,并非地址量。 如p为地址量,它为哪一个变量的地址?这时: int t,*p=t;?(允许) ?p= ?p1;sway(p1, p2) int p1, p2; { int p; p=p1; p1=p2; p2=p; } ;4. 结论:;8.2 指针的运算;;;8.3 指针与数组的关系;8.3.1 指向一维数组的指针;* 指针也可用下标表示。;#includestdio.h main() { int a1=123, a2=234, a3=345; int *p1, *p2, *p3; int as[3]={1, 2, 3}, *ps; p1=a1; p2=p1+1; p3=p2+1; printf(p1=%ld\n p2=%ld\n p3=%ld\n, p1, p2, p3); printf(*p1=%d\n *p2=%d\n *p3=%d\n, *p1, *p2, *p3); ps=as; printf(ps[0]=%d\n ps[1]=%d\n ps[2]=%d\n,ps[0],ps[1],ps[2]); };运行结果:;注意: 指针变量在未赋值前指向一个不定值;int *p=a[0]; 或 int ?p=a; ? (等价于) ;由首地址指针来引用数组中的其它元素。 设p为a的首地址,p=a,或p=a[0]; ;指针;#include stdio.h main() { int a[4]={1, 2, 3, 4}, *p, i; p=a; i=0; do { printf(*p=%d, p=%ld\n, *p, p); p=p+1; i=i+1; } while(i4); };8.3.2 多维数组的指针;12; 设首地址a:2000, 则a+1:2008, a+2: 2016;#include stdio.h main() { int i,j, a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; for (i=0; i3; i++) printf(addr of a[%d] [0] is: %ld\n, i, (a+i)); for (i=0; i3; i++){ printf(\n); for (j=0; j4; j++) printf(addr of a[%d] [%d] is: %ld\n, i, j, *(a+i)+j); } };addr of a[0] [0] is: 113901500 addr of a[1] [0] is: 113901508 addr of a[2] [0] is: 113901516 addr of a[0] [0] is: 113901500 addr of a[0] [1] is: 113901502 addr of a[0] [2] is: 113901504 addr of a[0] [3] is: 113901506 addr of a[1] [0] is: 113901508 addr of a[1] [1] is: 113901510 addr of a[1] [2] is: 113901512 addr of a[1] [3] is: 113901514 addr of a[2] [0] is: 113901516 addr of

您可能关注的文档

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档