《C语言教程》课程PPT教学课件:数组与指针

数组与指针 指针变量可以指向数组元素,所谓数 组元素的指针就是数组元素的地址。 引用数组元素可以用下标法来表示 (例如:aray10]),也可以用指针法, 即通过指向数组元素的指针找到所需要 的元素
数组与指针 指针变量可以指向数组元素,所谓数 组元素的指针就是数组元素的地址。 引用数组元素可以用下标法来表示 (例如:array[10]),也可以用指针法, 即通过指向数组元素的指针找到所需要 的元素

数组与指针 指向数组元素的指针 定义指向数组元素的指针变量和定义 个指向变量的指针变量方法相同 例子: int a 101 int p P=&a[0 这样就将指针变量P指向了数组a的第 个元素
数组与指针 • 指向数组元素的指针 定义指向数组元素的指针变量和定义 一个指向变量的指针变量方法相同 例子: int a[10]; int *p; P=&a[0]; 这样就将指针变量P指向了数组a的第 一个元素

数组与指针 注意: C语言规定数组名不代表整个数组, 而是代表该数组的首地址,因此以下两 个定义是等价的: Int米 a 2. int*p 0
数组与指针 • 注意: C语言规定数组名不代表整个数组, 而是代表该数组的首地址,因此以下两 个定义是等价的: 1.int *p=a; 2.int *p; p=a[0];

数组与指针 ·通过指针引用数组元素 假设P已定义为一个指向整形数据的指针变 量,并已经给它赋了一个整形数组元素的地 址,使它指向某一个数组元素 例如: int*p, a 101 p=&a0]; *p=13(引用整形指针) 其作用相当于将数组元素a[0赋值为1
数组与指针 • 通过指针引用数组元素 假设P已定义为一个指向整形数据的指针变 量,并已经给它赋了一个整形数组元素的地 址,使它指向某一个数组元素。 例如: int *p,a[10]; p=&a[0]; *p=1;(引用整形指针) 其作用相当于将数组元素a[0]赋值为1

数组与指针 关于指针引用数组元素的几点说明: 假设已经将指针变量p指向了数组a的a[O] 则pl和a+就是a的地址。 即:*(p+)=*(a+)=a[订 所以:引用数组元素的方法有四种 1.*(p+1) 2.*(a+i1) 指针法 3.p[i 4.*p;p+
数组与指针 • 关于指针引用数组元素的几点说明: 假设已经将指针变量p指向了数组a的a[0] 则p+I和a+I就是a[i]的地址。 即: *(p+I)=*(a+I)=a[i]; 所以:引用数组元素的方法有四种 1.*(p+i) 2.*(a+i) 3.p[i] 4.*p;p++ 指针法

数组与指针(程序一) #include #include maino int a51,p,i; p=&a[0];/p=a; ◆for(i=0;<5;计++) a[=i+1
数组与指针(程序一) #include #include main() { int a[5],*p,i; p=&a[0]; //p=a; for(i=0;i<5;i++) { a[i]= i+1; }

数组与指针(程序一) for(i=0;j<5;计+) printf("(p+d)=%dn", i, (p+i)) for(i=0;i<5;i++) printf("*(a+%d=%odn,i,(a+i)) for(p<(a+5);p+)
数组与指针(程序一) for(i=0;i<5;i++) { printf("*(p+%d)=%d\n",i,*(p+i)); } for(i=0;i<5;i++) { printf("*(a+%d)=%d\n",i,*(a+i)); } for(;p<(a+5);p++) {

数组与指针(程序一) printf("* p=%odn" * p) for(p=a,i=0<5;i++) printf("pl%od=%odn,i,pD; system("pause
数组与指针(程序一) printf("*p=%d\n",*p); } for(p=a,i=0;i<5;i++) { printf("p[%d]=%d\n",i,p[i]); } system("pause"); }

数组与指针 。对上述四种方法的比较: 1.*(p+i),*(a+i)p[三种方法的执行效率 是完全一样的,每次要重新计算地址 2用*p;p++;来引用数组元素的方法执 效率最高,因为不必每次重新计算地址 只需要有规律的改变地址值即可
数组与指针 • 对上述四种方法的比较: 1.*(p+i),*(a+i),p[i]三种方法的执行效率 是完全一样的,每次要重新计算地址 2.用*p;p++;来引用数组元素的方法执行 效率最高,因为不必每次重新计算地址, 只需要有规律的改变地址值即可

数组与指针 使用指针时,有几个问题要注意 1.可以改变指针变量的值,即可以执 行p++;操作,但不可以改变指针常量 的值,如数组名a就是指针常量,所以不 能用a++。 例如:inta[10]i; for(=0;I<10;I++) printf( d2*a++); 上述写法是错误的
数组与指针 • 使用指针时,有几个问题要注意 1.可以改变指针变量的值,即可以执 行p++;操作,但不可以改变指针常量 的值,如数组名a就是指针常量,所以不 能用a++。 例如:int a[10],i; for(I=0;I<10;I++) printf(“%d”,*a++); 上述写法是错误的
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言教程》课程PPT教学课件:C程序设计For循环.ppt
- 《C语言教程》课程PPT教学课件:选择结构程序设计.ppt
- 《C语言教程》课程PPT教学课件:指针与函数.ppt
- 《DWDM培训原理》教材PPT课件讲解.doc
- 《C语言教程》课程教学资源(教案讲义)程序设计及应用实例(共十一章).pdf
- 《C语言教程》课程教学资源(教案讲义)第十章 指针.doc
- 《C语言教程》课程教学资源(教案讲义)第十三章 文件.doc
- 《C语言教程》课程教学资源(教案讲义)第十一章 结构和共同体.doc
- 《C语言教程》课程教学资源(教案讲义)第六章 循环控制设计.doc
- 《C语言教程》课程教学资源(教案讲义)第九章 编译预处理.doc
- 《C语言教程》课程教学资源(教案讲义)第八章 函数.doc
- 《C语言教程》课程教学资源(教案讲义)第五章 顺序结构程序设计.doc
- 《C语言教程》课程教学资源(教案讲义)第二章 C语言程序设计概述.doc
- 《C语言教程》课程教学资源(教案讲义)第三章 数据描述与基本操作.doc
- 《C语言教程》课程教学资源(教案讲义)第七章 数组.doc
- 《C语言教程》课程教学资源(教案讲义)第一章 计算机程序高设计与算法.doc
- 《FTP服务器端软件Serv-U教程》教学资源(讲义)第四节 Serv-U用户属性之“General”(常用).doc
- 《FTP服务器端软件Serv-U教程》教学资源(讲义)第六节 Serv-U用户属性之完结.doc
- 《FTP服务器端软件Serv-U教程》教学资源(讲义)第五节 Serv-U用户属性之“Dir Access”(目录存取属性).doc
- 《FTP服务器端软件Serv-U教程》教学资源(讲义)第二节 Serv-U 管理器.doc
- 《C语言教程》课程PPT教学课件:多维数组与指针.ppt
- 《C语言教程》课程PPT教学课件:数组与指针的自定义.ppt
- 《C语言教程》课程PPT教学课件:指针的各种定义.ppt
- 《C语言教程》课程PPT教学课件:指针作为函数参数.ppt
- 《C语言教程》课程PPT教学课件:指针是C语言中重要的概念.ppt
- 《C语言教程》课程PPT教学课件:循环控制.ppt
- 《C语言教程》课程PPT教学课件:二维数组的定义.ppt
- 《C语言教程》课程PPT教学课件:变量存储类别.ppt
- 《C语言教程》课程PPT教学课件:程序设计中的函数.ppt
- 《C语言教程》课程PPT教学课件:预处理命令.ppt
- 《C语言教程》课程PPT教学课件:字符数组的元素.ppt
- 《C语言教程》课程PPT教学课件:数组作为函数参数.ppt
- 《C语言教程》课程PPT教学课件:内部函数和外部函数.ppt
- 《C语言教程》课程PPT教学课件:局部变量和全局变量.ppt
- 《C语言教程》课程PPT教学课件:函数调用的一般形式.ppt
- 《C语言教程》课程PPT教学课件:数组的数据的集合.ppt
- 《C语言教程》课程教学资源:课堂笔记.doc
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第一章 软件危机与软件工程.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第七章 编码.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第九章 软件维护.ppt