下载此文档

C课件第14讲.ppt


文档分类:IT计算机 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
第十四讲第八章指针?数组的指针和指向数组的指针变量?字符串的指针和指向字符串的指针变量 一维数组的指针和指向一维数组元素的指针变量?数组的指针:数组的首地址。?一维数组的指针:一维数组的首地址,也就是一维数组中第一个元素的地址。?C语言规定:数组名代表数组的首地址。若有: int a[10]; 则: a 与& a[0] 是等价的?数组元素的指针:数组元素的地址。?指向一维数组元素的指针变量:存放一维数组首地址或数组元素地址的变量。 一维数组的指针和指向一维数组元素的指针变量?一维数组的首地址加上偏移量 x即可得到其他数组元素的地址。例如: int a[10], * p; p=a; / *等价于 p=&a[0] */ 则有: ?&a[1] 等价于 a+1 或 p+1 ?&a[i] 等价于 a+i 或 p+i 注意: p+i 指向数组的第 i个元素,而不是简单地使指针变量 p的值加 i。其所代表的地址实际上是 p+i × size ( size 为一个数组元素所占的字节数)。 一维数组的指针和指向一维数组元素的指针变量?访问一个数组元素主要有两种形式: ?下标法:用 a[i] 的形式存取数组元素。?指针法:用* (a+i) 或* (p+i) 的形式存取数组元素。其中 a是一维数组名, p是指向数组元素的指针变量。 p的初值为数组 a的首地址,可以通过指针变量赋值或加/减一个整数使 p指向不同的数组元素。例如: int a[10], * p=a; p++; / * p指向 a[1] * / p=a+5; / * p指向 a[5] */ 一维数组的指针和指向一维数组元素的指针变量例通过下标法存取数组元素#include <> void main( ) { int a[10], i; for(i=0; i<10; i++) scanf("%d", &a[i] ); for(i=0; i<10; i++) printf("%5d", a[i] ); printf("\n"); } 一维数组的指针和指向一维数组元素的指针变量例通过数组名计算元素地址存取数组元素#include <> void main( ) { int a[10], i; for(i=0; i<10; i++) scanf("%d", a+i ); for(i=0; i<10; i++) printf("%5d", * (a+i) ); printf("\n"); } 一维数组的指针和指向一维数组元素的指针变量例通过指针变量存取数组元素#include <> void main( ) { int a[10], * p; for(p=a; p<a+10; p++) scanf("%d", p ); for(p=a; p<a+10; p++) printf("%5d", *p ); printf("\n"); } 一维数组的指针和指向一维数组元素的指针变量?用指针法访问数组元素的注意事项: ?数组名是一个常量,不允许重新赋值。? p+i 和 a+i 均表示数组元素 a[i] 的地址,均指向 a[i] 。?* (p+i) 和* (a+i) 均表示 p+i 和 a+i 所指对象的内容,即 a[i] 。?* p++ 等价于* (p++) ,其作用是先得到*p, 再使 p=p+1 。 一维数组的指针和指向一维数组元素的指针变量?用指针法访问数组元素的注意事项: ?(* p)++ :表示将 p所指向元素的值加 1。例如: int a[5]={0, 2, 4, 6, 8}, * p; p=a+2; ( * p)++; printf("%d\n", * p); 程序段输出结果为: 5 一维数组的指针和指向一维数组元素的指针变量例分析下面程序的输出结

C课件第14讲 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yinjinsen
  • 文件大小618 KB
  • 时间2017-01-08