[理学]C语言程序设计--chapter6-1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?设一个函数process,在调用它的时候,每次实现不同的功能。输入a和b两个数,第一次调用的时找出其中的大者,第二次调用的时找出其中的小者。第三次调用求两者之和。 main( ) { void sub(int,int); int x,y,*p1,*p2; p1=x; p2=y; sub(p1,p2); printf(%d,%d\n,x,y); } sub(int *px,int *py) { *px=10; *py=20; } 变量的指针作为参数 px=2000 p2=2002 p1=2000 x y 2000 2002 py=2002 6.3.1 指针作为函数参数 x=10 y=20 a[2] a[1] a[0] a[2][3] a[2][2] a[2][1] a[2][0] a[1][3] a[1][2] a[1][1] a[1][0] a[0][3] a[0][2] a[0][1] a[0][0] a a+1 a+2 a[0] a[0]+1 a[0]+2 a[0]+3 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 第i行第j列的元素值 a 二维数组的首地址,即第0行的首地址 a+i 第i行的首地址 a[i] ? *(a+i) 第i行第0列的元素地址 a[i]+j ? *(a+i)+j 第i行第j列的元素地址 a[1] a[1]+1 a[1]+2 a[1]+3 *(a+1) *(a+1)+1 *(a+1)+2 *(a+1)+3 1016 1008 1000 1022 1020 1018 1016 1014 1012 1010 1008 1006 1004 1002 1000 a a+1 a+2 a[1] a[1]+1 a[1]+2 a[1]+3 *(a+1) *(a+1)+1 *(a+1)+2 *(a+1)+3 a+i = a[i] = a[i] = *(a+i) = a[i][0], 数值相等,含义不同。 a[i]=*(a+i),所以a+i是a[i]的二级指针; a+i ? a[i] 表示第i行首地址,指向行(行地址)。 a[i] ? *(a+i) ? a[i][0] 表示第i行第0列元素地址, 指向列(列地址) a[2] a[1] a[0] a[2][3] a[2][2] a[2][1] a[2][0] a[1][3] a[1][2] a[1][1] a[1][0] a[0][3] a[0][2] a[0][1] a[0][0] a a+1 a+2 a[1][0]元素的地址表示: a[1][0] a[1] *(a+1) a+1 (int *) (a+1) a[1][2]元素的地址表示: a[1][2] a[1]+2 *(a+1)+2 a[0][0]+1*4+2 a[1][2]元素值: a[1][2] *(a[1]+2) *(*(a+1)+2) *(a[0][0]+1*4+2) a[1][0]元素值: a[1][0] *a[1] *(*(a+1)) ? **(a+1) a[i][j] a[i]+j *(a+i)+j a[i][j] *(a[i]+j) *(*(a+i)+j) (a[i])[j] (*(a+i))[j] 二维数组表示法归纳 二维数组元素的地址 访问二维数组元素 *p+j *(*p+j) (*p)[j] 指向一维数组的指针变量 格式:类型名 (*指针变量名)[长度]; 例如:int (*p)[4]; 含义:p是指针变量,可让p指向二维数组某一行,即指 向含有4个元素的一维数组,元素的类型是int。 int (*p)[4]; p=a; p=a+1; p++; a[3][4] p p p 一维数组指针变量维数和二维数组列数必须相同。 通过(*p)[j] 可以访问当前行第 j 列的元素 a[2][3] a[2][2] a[2][1] a[2][0] a[1][3] a[1][2] a[1][1] a[1][0] a[0][3] a[0][2] a[0][1] a[0][0] (*p)[0] (*p)[1] (*p)[2] (*p)[3] p (*p)[j]表示当前行的第j个元素 如果执行p++, 指针将指向下一行,访问下一行的元素。 p (a[i])[j] ? (*(a+i))[j] ? (*p)[j] 通过 *(*p+j) 的形式可以访问当前行

文档评论(0)

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

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

1亿VIP精品文档

相关文档