- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 指针 指针及其相关概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量 字符串指针和指向字符串的指针变量 指针函数和函数的指针 返回指针值的函数 指针数组和指向指针的指针 指针的数据类型小结 深刻理解并掌握指针与指针变量的概念;(重点) 掌握数组的指针和指针数组的使用; (重点) 掌握字符串指针和指向字符串的指针变量的使用; (重点) 掌握指针函数和函数指针的使用;(难点) 了解指向指针的指针的概念及其使用。 10.1 指针及其相关概念 直接访问与间接访问 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 10.2 变量的指针和指向变量的指针变量 10.3 数组的指针和指向数组的指针变量 [使用指针变量] main() { int a[10]; int *p,i; for(i=0; i10; i++) scanf(%d,a[i]); printf(\n); for(p=a; p(a+10); p++) printf(%d,*p); } [使用指针变量] main() { char a[]={‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’\0’},*p; p=a+4; printf(“%s\n“,p); } 对二维数组 int a[3][4],有 a-----二维数组的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j -----第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 二维数组的指针变量 指向二维数组元素的指针变量 指向一维数组的指针变量 定义形式: 数据类型 (*指针名)[一维数组维数]; 例 int (*p)[4]; 用指针数组处理二维数组的数据 例 指针数组的初始化 10.4 字符串指针和指向字符串的指针变量 字符串表示形式举例 用字符数组实现 字符串指针作函数参数的例子 10.5 指针函数和函数的指针 5.用函数指针变量作函数参数 指针的数据类型小结 作业 课外作业:C语言练习CH10.doc 上机实习内容:实验十 例如:假若有语句 int a[2][3], (*p)[3]; p=a; 则:⑴ p是一个指向由3个整型元素组成的一维数 组的指针变量。 ⑵ p指向a数组,p+1指向数组a的下一行首地址,a和p的基类型相同,则a数组中任意元素a[i][j]还可以如下表示: *(p[i]+j) 、*(*(p+i)+j) 、(*(p+i))[j] 、p[i][j] C语言程序设计 第十章 指针 注意:*p两侧的圆括号不可缺少。 C语言程序设计 第十章 指针 例 二维数组及一维数组指针变量的应用举例 main() { static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int i,j,(*p)[4]; for(p=a,i=0;i3;i++,p++) for(j=0;j4;j++) printf(%d ,*(*p+j)); printf(\n); } p=a[0]; p=*a; p=a[0][0]; p=a[0]; p=a[0]; p=*a; p=a[0][0]; p=a[0]; int a[3][4]; a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][2] a[2][3] p p p ? p[0][j] ch10_18.c 输出:1 3 5 7 9 11 13 15 17 19 21 23 C语言程序设计 第十章 指针 例:输出2*3数组的数据 分析数据结构:定义整型数组存放数据,定义指针数组,其元素的初值分别是整型数组各行的首地址。 main()
文档评论(0)