《C语言》课程资源_C语言_教学课件_27——指针——指向数组

程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

第9章 指针
2

本章知识点 9.1地址和指针 9.2指针变量 9.3指向数组的指针变量 9.4函数指针变量 9.5返回指针值的函数 9.6指针数组和指向指针的指针 9.7小结 恩 3
本章知识点 9.1 地址和指针 9.2 指针变量 9.3 指向数组的指针变量 9.4 函数指针变量 9.5 返回指针值的函数 9.6 指针数组和指向指针的指针 9.7 小结 3

9.3 指向数组的指针变量 9.3.1指向数组元素的指针 9.3.2通过指针引用数组元素 9.3.3指向数组的指针变量作函数参数 9.3.4指向多维数组的指针变量
9.3.1 指向数组元素的指针 9.3.2 通过指针引用数组元素 9.3.3 指向数组的指针变量作函数参数 9.3.4 指向多维数组的指针变量

关于数组的术语 ①数组首地址(起始地址、数组的指针)一是一个地址常量。 ,计算机系统为数组分配的连续多个内存单元中第一个单元的 地址-用数组名表示。 例1:inta[5];∥假设数组a的首地址是2000。 数组a的首地址 ②数组元素的地址(数组元素的指针): ◆数组元素(与简单变量一样)的存储单元的首地址。2000 a[o] 例2:a[2]的地址是2008,即&a[2] 2004 a1] 2008 a[2 2012 a[3] 2016 a4] 5
①数组首地址(起始地址、数组的指针)—是一个地址常量。 Ø 计算机系统为数组分配的连续多个内存单元中第一个单元的 地址-用数组名表示。 例1:int a[5]; 关于数组的术语 2000 a[0] 2004 a[1] 2008 a[2] 2012 a[3] 2016 a[4] ②数组元素的地址(数组元素的指针): u 数组元素(与简单变量一样)的存储单元的首地址。 例2:a[2]的地址是2008,即&a[2] 5 数组 a的首地址 // 假设数组a的首地址是2000

9.3.1指向数组元素的指针P189 可以用一个指针变量指向一个数组元素。 例如: inta[10]={1,3,5,7,9,11,13,15,17,19}; int *p阳 1 a[o] ② p p=&a[o]; &.a[0] 3 5 等价于int*p=a; 7 等价于p=a; 或int*p=&a[0]; 9 11 注意1:数组名a代表数组首元素的地址。 13 注意2:p=a;是“把a数组的首元素的 15 17 地址赋给指针变量p”,而不是“把数组 19 a[9] a各元素的值赋给p
可以用一个指针变量指向一个数组元素。 int a[10]={1,3,5,7,9,11,13,15,17,19}; ① int *p; ② p = &a[0]; 等价于p=a; 等价于 int *p=a; 或int *p=&a[0]; 注意1:数组名 a 代表数组首元素的地址。 注意2:p=a; //是“把a数组的首元素的 地址赋给指针变量p” ,而不是“把数组 a各元素的值赋给p” 。 例如:

9.3.2 通过指针引用数组元素-P190 C语言规定:如果指针变量p已指向数组中的一个元素: ① p+1:指向同一数组中的下一个元素。 ② p-1:指向同一数组中的前一个元素。 例1:inta[10],*p=a;∥假设a[0]的地址是2000 则: ① p的值为2000 ② p+1的值为2004 越界!!! ③ p-1的值为1996
C语言规定:如果指针变量 p 已指向数组中的一个元素: ① p+1:指向同一数组中的下一个元素。 ② p-1:指向同一数组中的前一个元素。 例1:int a[10] , *p=a;// 假设a[0]的地址是2000 则: ① p的值为2000 ② p+1的值为2004 ③ p-1的值为1996 越界!!!

p→ 如果:p=&a[0];∥相当于p=a; p+1,a+1→ ao] (1)(p+i)或*(a+i)是p+i或a+i所指向 的数组元素-a[叮。 a2] 例如:*(p+5)或*(a+5)就是a[5] 对a[叮的求解过程:先按a+i*d 计算出数组元素的地址,然 p+i,a+i_ *(p+) a 后找出此地址所指向的单元 中的值。 a[8] p+9,a+9- a[9]
如果:p=&a[0]; // 相当于p=a; (1)*(p+i)或*(a+i)是p+i或a+i所指向 的数组元素-a[i]。 例如:*(p+5) 或*(a+5)就是a[5] 对a[i]的求解过程:先按a+i*d 计算出数组元素的地址,然 后找出此地址所指向的单元 中的值。 *(p+i)

p→ 如果:p=&a[0];∥p=a; p+1,at1> (2)指向数组元素的指针变量p也 羽明吧 可以带下标。 如:p叮、*(p+)、*(a+i)←a叮 · p+i,a+i- *(p+) a时 8 例1:inta[10]={2,4,6,8,10} a[8] p+9,a+9→ a[9] int *p=a; printf("%d%d%d%dn",p[2],*(p+2),a[2],*(a+2)i lp[2]、*(p+2)、*(a+2)←→a[2] 66 66
例1:int a[10]={2,4,6,8,10}; int *p=a; printf("%d %d %d %d\n" ,p[2], *(p+2),a[2], *(a+2)); //p[2]、 *(p+2)、 *(a+2) a[2] (2)指向数组元素的指针变量p也 可以带下标。 如:p[i]、 *(p+i)、 *(a+i) a[i] *(p+i) 如果:p=&a[0]; // p=a;

(3)如果指针p1和p2都指 a[0] 向同一数组的不同元素。 a[1] a[2] 则:p2-p1的值是4 p1 a3] /表示两者之间元素个数 a4] 注意:不能p1+p2 a[5] a[6] p23 a7] a[8] a[9]
(3) 如果指针p1和p2都指 向同一数组的不同元素。 则:p2-p1的值是4 //表示两者之间元素个数 注意:不能p1+p2 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] p1p2
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程资源_C语言_教学课件_26——指针——基础知识.ppt
- 《C语言》课程资源_C语言_教学课件_25——程序设计基础1——数组——数组与函数.ppt
- 《C语言》课程资源_C语言_教学课件_24——程序设计基础1——数组——二维数组.ppt
- 《C语言》课程资源_C语言_教学课件_23——程序设计基础1——第8章——数组——一维数组——移位删除.ppt
- 《C语言》课程资源_C语言_教学课件_22——程序设计基础1——第8章——数组——一维数组——查找逆置.ppt
- 《C语言》课程资源_C语言_教学课件_21——一维数组——排序应用.ppt
- 《C语言》课程资源_C语言_教学课件_20——程序设计基础1——数组——一维数组基本操作.ppt
- 《C语言》课程资源_C语言_教学课件_19——函数——随机数函数的应用.ppt
- 《C语言》课程资源_C语言_教学课件_18——函数——变量的作用域.ppt
- 《C语言》课程资源_C语言_教学课件_17——第7章 函数嵌套与递归.ppt
- 《C语言》课程资源_C语言_教学课件_16——函数的基本操作.ppt
- 《C语言》课程资源_课件ppt_8章字符串处理.ppt
- 《C语言》课程资源_课件ppt_7指针.ppt
- 《C语言》课程资源_课件ppt_6数组.ppt
- 《C语言》课程资源_课件ppt_5循环程序设计.ppt
- 《C语言》课程资源_课件ppt_4选择.ppt
- 《C语言》课程资源_课件ppt_2、3章.ppt
- 《C语言》课程资源_课件ppt_1章 C语言概述.ppt
- 《C语言》课程资源_课件ppt_13章位运算.ppt
- 《C语言》课程资源_课件ppt_12章结构体01.ppt
- 《C语言》课程资源_C语言_教学课件_28——字符数组——基本知识.ppt
- 《C语言》课程资源_C语言_教学课件_30——字符串数组与字符串函数.ppt
- 《C语言》课程资源_C语言_教学课件_理解——29——字符数组与指针.ppt
- 《C语言》课程资源_C语言_教学课件_01——C语言-导论、ACM操作方法、实验操作方法.ppt
- 《C语言》课程资源_C语言_教学课件_02——算法基础.ppt
- 《C语言》课程资源_C语言_教学课件_03——数据在计算机中的表示.ppt
- 《C语言》课程资源_C语言_教学课件_04——C语言——数据类型.ppt
- 《C语言》课程资源_C语言_教学课件_05——C语言的基本数据运算.ppt
- 《C语言》课程资源_C语言_教学课件_06——顺序结构程序设计.ppt
- 《C语言》课程资源_C语言_教学课件_07——C语言——输入输出格式控制.ppt
- 《C语言》课程资源_C语言_教学课件_08——C语言——关系运算、逻辑运算、if-分支结构.ppt
- 《C语言》课程资源_C语言_教学课件_09——C语言——switch开关语句的应用.ppt
- 《C语言》课程资源_C语言_教学课件_10——循环结构——-while循环.ppt
- 《C语言》课程资源_C语言_教学课件_11-do——while循环.ppt
- 《C语言》课程资源_C语言_教学课件_12——逗号表达式的运用.ppt
- 《C语言》课程资源_C语言_教学课件_13——for——循环语句的使用.ppt
- 《C语言》课程资源_C语言_教学课件_14——程序设计基础1——-循环嵌套.ppt
- 《C语言》课程资源_C语言_教学课件_15——程序设计基础1——第6章——break——continue.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿)01(第一章 JAVA语言入门).ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿)02(第二章 JAVA语法基础).ppt
