C语言程序设计 第7章指针.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言程序设计 第7章指针.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计 第7章指针.pptx(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章指针,C语言程序设计,指针是C语言中一种重要的数据类型,是C语言的精华,灵活地运用指针可以处理各种复杂的数据结构,从而编出精练而高效的应用程序。,7.1指针的概念,1.指针的定义在计算机中,所有的数据都是存放在存储器中。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占4个单元,字符量占1个单元等,为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元,内存单元的编号也叫做地址,通常把这个地址也称为指针。内存单元的指针和内存单元的内容是两个不同的概念。对于一个内存单元来说,单元的地址即为指针,其中存放的
2、数据才是该单元的内容。指针是一种数据类型,它是用来专门存放所指对象地址的变量,即数据值是存放在指针所指的对象中,而不是在指针变量中。,2.指针变量的定义指针变量定义的一般形式如下:类型说明符*变量名;其中,*表示指针变量,变量名即为定义的指针变量名,类型说明符表示指针变量所指对象的数据类型。如“int*p1;”表示p1是指向某一整型变量的指针变量,它的值是某个整型变量的地址,如图7-1-1所示。,7.1指针的概念,例如:float*p2;/*p2是指向实型变量的指针变量*/char*p3;/*p3是指向字符变量的指针变量*/注意:一个指针变量只能指向同类型的变量,如p2只能指向实型变量,不能时
3、而指向一个实型变量,时而又指向一个字符变量。,7.1指针的概念,3.指针变量的引用指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。C语言中提供了运算符“*”和取地址运算符“,7.1指针的概念,设有指向整型变量的指针变量p,如要把整型变量a的地址赋予p,可采用以下两种方式:指针变量初始化的方法inta;int*p=,7.1指针的概念,注意:被赋值的指针变量前不能再加“*”,如写为“*p=,7.1指针的概念,【例7.1.1】运用指针输出变量的值。,7.1指针的概念,程序运行结果:3242【分析】定义整型变量a。定义一个
4、指向a的指针p。从键盘输入一个数送到p指向的地址。将a的值加10。输出指针p所指向的地址中的内容。,7.1指针的概念,4.指针变量作为函数参数函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。【例7.1.2】输入a、b、c三个数,按从小到大的顺序输出。,7.1指针的概念,7.1指针的概念,程序运行结果如下:9575,7,9【分析】运用冒泡排序法,两两依次相比较,将小数放在前面,大数放在后面,比较三次得到结果。本程序中定义了指针变量,变量互换时不再借助于第三个变量,而是利用指针指向不同的变量来实现变量的互换。流程图如图7-1-2所示。,
5、7.1指针的概念,7.1指针的概念,一个数组是由连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素(下标变量)组成的。每个数组元素按其类型不同占有几个连续的内存单元。一个数组元素的首地址是指它所占有的几个内存单元的首地址。一个指针变量既可以指向一个数组,也可以指向一个数组元素,可把数组名或第一个元素的地址赋予它。1.指针变量处理一维数组引入指针变量后,可以采用“ai”形式和指针法,即采用“*(pa+i)”形式访问数组元素。两种方法的区别如图7-2-1所示。,7.2指针与数组,如要使指针变量指向第i号元素,可以把i元素的首地址赋予它或把数组名加i赋予它。in
6、ta10;int*p;p=/*把数组元素a5的地址赋给指针变量p*/,7.2指针与数组,【例7.2.1】运用指针法访问数组元素。,7.2指针与数组,程序运行结果:a0=0a1=1a2=2a3=3a4=4【分析】先用一个循环语句将数组a的5个元素分别赋值为04。再用一个循环语句将数组a的5个元素分别输出。两个循环中访问数组均使用指针法。,7.2指针与数组,7.2指针与数组,程序运行结果:a0=0a1=1a2=2a3=3a4=4【分析】用一个循环实现数组元素的赋值和输出,其中“*pa+”是指先将指针pa所指向的存储单元的内容读出,再将指针pa后移,指向下一个数组元素。,7.2指针与数组,2.用数组
7、名作函数参数可用数组名和数组指针变量作函数参数。数组名就是数组的首地址,实参向形参传送数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。指针变量的值也是地址,数组指针变量的值即为数组的首地址,也可作为函数的参数使用。,7.2指针与数组,【例7.2.2】输入10个数,求出其平均值。,7.2指针与数组,7.2指针与数组,程序运行结果:请输入十个数:11223344556677889928这十个数的平均值为:5230【分析】定义一个用于求平均值的函数aver(),主函数中定义保存这10个数的数组sco,并将sco的首地址通过指针sp传给aver定义的指针pa,在函数aver()中通过p
8、a的移动求出数组sco所有元素之和,然后求出均值,最后传给主函数并输出。,7.2指针与数组,3.指针变量处理二维数组定义以下二维数组:inta34=0,1,2,3,4,5,6,7,8,9,10,11;a为二维数组名,此数组有3行4列,共12个元素。可理解为:数组a由三个元素组成a0,a1,a2,而它们每个元素又是一个一维数组,且都含有4个元素(相当于4列)。如a0所代表的一维数组所包含的4个元素为a00,a01,a02,a03,如图7-2-2所示。,7.2指针与数组,从二维数组的角度来看,a代表二维数组的首地址,当然也可看成是二维数组第0行的首地址。a+1代表第1行的首地址,a+2代表第2行的
9、首地址。如果此二维数组的首地址为1000,由于第0行有4个整型元素,所以a+1的地址为1016,a+2的地址为1032。VC+6.0整型数据占4个字节,如图7-2-3所示。,7.2指针与数组,【例7.2.3】输出二维数组元素的地址和数值。,7.2指针与数组,程序运行结果:4354852,4354852,4354852,4354852,0,4354868,4354868,4354868,4354868,4,4354884,4354884,4354884,4354884,8,4354872,43548725,5【分析】二维数组a的首地址是一维数组a0的首地址,即数组元素a00的地址;二维数组a的首
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 CAD C语言 EXCEL 办公自动化 编程 程序 电脑 系统 网络
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内