- 1
- 0
- 约1.21万字
- 约 58页
- 2019-05-10 发布于广东
- 举报
2、指向一维数组的指针变量 int a[10]; int *p; int a[10], *p; 因为 a与a[0]是等价的,所以可进行如下指针赋值运算: p=a; 或 p=a[0]; ? 注意:① 数组名代表数组首地址,即第0号元素的地址; ② a不代表整个数组,上述语句“p=a;”的作用是“把a数组的首地址赋给指针变量p”,而不是“把数组a各元素的值赋给p”。 ③ 定义时可以进行初始化: int *p=a[0]; //两侧的类型均为整形指针类型: int* int *p; *p=a[0]; 但 3、数组元素的引用 引用数组元素可以用下标法(如a[1]);也可以用指针法,即通过指向数组元素的指针找到所需的元素。? int a[10], *p; p=a; *p=5; a[0]=5; p=a[3]; *p=5; a[3]=5; C++规定:无论数组的数据类型如何,若指针变量p已指向数组中的某一元素,则p+1指向同一数组中的下一个元素(而不是将p简单的加1) 例如: int x[10], *p=x; p+1意味着使p在原值的基础上加4个字节,以使它指向下一元素; double x[10], *p=x; p+1意味着使p在原值的基础上 加8个字节,以使它指向下一元素; 4、通过指针访问一维数组 总之: ① 设d是一个数组元素所占的字节数,则p+i表示指针移动了i个元素,而它实际的地址变化为:p+i*d; ② *p即a[0],*(p+i)即a[i] 5、在使用指针变量引用数组时,应注意以下问题: ①、 p+1或a+1实际上表示数组元素a[1]的地址(a[1]);则p+i或a+i表示数组的第i个元素的地址(a[i]); 同理: *(p+i)或*(a+i)表示p+i或a+i所指向的数组元素,即a[i] ; ②、 指向数组的指针变量也可以带下标;如:p[i]与*(p+i)等价; ③、 若p已经指向某个数组元素a[i],则p+j表示指向数组元素a[i+j]; ④、 可以使用p++使指针变量p的值不断改变: for (p=a; p(a+10); p++) cout *p; ⑤、在程序运行期间,要始终注意指针变量当前所指向的是哪一个元素; 小结 数组第 i 个元素地址的表示方法: a[i], a+i, p+i, p[i] 数组第 i 个元素的表示方法: a[i], *(a+i), *(p+i), p[i] 1、引用一个数组元素的两种方法: ①、下标法:用a[i]或p[i]来引用数组a中的第i号元素; ②、指针法:用*(p+i)或*(a+i)来引用数组中的第i号元素; 可见:任何由数组下标完成的操作都能由指针来实现; a[i] *(p+i) a[i] p+i 2、注意指针变量的运算: 若p指向数组的开始,即:p=a; Ⅰ、p++; 使p指向下一元素,即a[1]; Ⅱ、*p++; 等价于*(p++); for (i=0,p=a; i10; i++) cout *p++; Ⅲ、注意*(p++)与*(++p)的区别; Ⅳ、(*p)++表示p所指向的元素值加1; Ⅴ、若指针变量指向数组的第i号元素,则: *(p--)相当于a[i--] *(--p)相当于a[--i] *(++p)相当于a[++i] 例 5.4.1 分别用下标法、指针法、位移法输入、输出数组元素。 #includeiostream.h void main( ) { int a[10]; int i; for (i=0; i10; i++) cina[i]; coutendl; for (i=0; i10; i++) couta[i]; } 方法一: 方法二: #includeiostream.h void main( ) { int a[10]; int i, *p; /*定义指针变量*/ p=a; /*建立关联*/ for (i=0; i10; i++) cin*p++; coutendl; for (p=a; pa+10; p++) /*使用*/ cout*p; } 方法三: #includeiostream.h void main( ) { int a[10]; int i ; for (i=0; i10; i++) cina[i]; coutendl; for (i
您可能关注的文档
- 河北经贸大学人文学院先秦文学史课件第四章 先秦历史散文.ppt
- 河北经贸大学人文学院先秦文学史课件第五章 先秦诸子散文.ppt
- 河北经贸大学人文学院现代汉语课件 词汇.ppt
- 河北经贸大学人文学院现代汉语课件 词类(1).ppt
- 河北经贸大学人文学院现代汉语课件 词类(2).ppt
- 河北经贸大学人文学院现代汉语课件 短语.ppt
- 河北经贸大学人文学院现代汉语课件 复句.ppt
- 河北经贸大学人文学院现代汉语课件 句子结构语义分析.ppt
- 河北经贸大学人文学院现代汉语课件 句子类型系统.ppt
- 河北经贸大学人文学院现代汉语课件 文字.ppt
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
原创力文档

文档评论(0)