C程序设计电子教案分析.ppt

  1. 1、本文档共186页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
  6、p++可以使p值不断改变,指向下一个元素,但决不允许使用a++,a--,因为a是数组名, 是数组首地址,程序运行过程中是常量。 例:8.4、8.5   7、注意区分:(*p)++; *p++; *(p++); *(++p)   引用数组元素可以用下标法(a[0]),也可以用指针法。使用指针法使程序质量高,执行速度快。 四、数组名作为函数的参数   数组名可以作为函数的实参传给形参。由于数组名是一个地址值,对应的形参就应该是数组名或或一个指针变量,但该指针必须与数组类型一致。   1、数组名作为实参时,对应的函数首部可以写成如下三种形式(定义时):    f(int *array); f(int array[10]); f(int array[]);   2、由于形参array指向主函数中的数组,用形参指针可直接访问数组中的元素。即执行被调函数,可以改变主调函数中数组元素的值。   3、有时为了明确说明数组元素个数,可将数组元素的个数传递过来。   例8.6、8.7 第三节 二维数组的行指针和指向行指针的指针变量   对于二维数组a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},有三行,每行又有四个元素。   可以理解为a是一个大数组,有三个元素,即每行是一个元素,分别为a[0]、a[1]、a[2];   在a[0]、a[1]、a[2]各元素中,每个元素中又有四个元素,如a[0][0]、 a[0][1]、 a[0][2]、 a[0][3]   1、对于大数组,a是数组名,是数组起始地址(常量),则a+1还是地址,他指向大数组的第二个元素,即第二行;a+2指向第3行; (a、a+i称为二维数组的行指针)   2、对于每个小数组, a[0]、a[1]、a[2]是数组名,是数组起始地址(常量),则a[0]+1还是地址,他指向第一个小数组的第二个元素,即第一行第二列;a[2]+3指向?   对于二维数组a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},有三行,每行又有四个元素。   可以理解为a是一个大数组,有三个元素,即每行是一个元素,分别为a[0]、a[1]、a[2];   在a[0]、a[1]、a[2]各元素中,每个元素中又有四个元素,如a[0][0]、 a[0][1]、 a[0][2]、 a[0][3]   1、对于大数组,a是数组名,是数组起始地址(常量),则a+1还是地址,他指向大数组的第二个元素,即第二行;a+2指向第3行; (a、a+i称为二维数组的行指针)   2、对于每个小数组, a[0]、a[1]、a[2]是数组名,是数组起始地址(常量),则a[0]+1还是地址,他指向第一个小数组的第二个元素,即第一行第二列;a[2]+3指向?   3、此时,a[0]+2、a[i]+j称为二维数组的列地址;     *(a[0]+2)、 *(a[i]+j)是列元素   1、对于大数组,a是数组名,是数组起始地址(常量),则a+1还是地址,他指向大数组的第二个元素,即第二行;a+2指向第3行; (a、a+i称为二维数组的行指针)   2、对于每个小数组, a[0]、a[1]、a[2]是数组名,是数组起始地址(常量),则a[0]+1还是地址,他指向第一个小数组的第二个元素,即第一行第二列;a[2]+3指向?   3、此时,a[0]+2、a[i]+j称为二维数组的列地址;     *(a[0]+2)、 *(a[i]+j)是列元素   4、由于a[i]是列地址,且a[i]和*(a+i)无条件等价,则a[i]和*(a+i)都是第i+1行的首列地址,即a[i][0];   5、在4中由于a+i是行地址,*(a+i)是列地址,    则*(行地址)=列地址,*(列地址)=列元素   6、综上,对于二维数组a[3][4]    a为数组名    a+i为第i+1行的 行地址(行指针)    *(a+i)、a[i]为第i+1行第1列的 列地址(元素指针)    *(a+i)+j、a[i]+j、a[i][j]       为第i+1行第j+1列的 列地址(元素指针)    *(*(a+i)+j)、*(a[i]+j)、a[i][j] 为第i+1行第j+1列元素   7、指向二维数组行的指针变量定义为    int (*p)[4];表示定义指针变量p,且p只可以保存具有4列的二维数组行地址。    指向二维数组元素的指针变量和简单变量,一维数组变量相同,int *p;   7、指向二维数组行的指针变量定义为    int (*p)[4];表示定义指针变量p,且p只可以保存具有4列的二维数组行地址。    指向二维数组元素的指针变量和简单变量,一维数组变量相同,

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档