资源描述:
《C语言程序的计第八章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章指针指针在C语言里应用极为广泛,如内存的动态分配、内存地址的直接处理、函数调用时批量参数的传递以及复杂数据结构的简洁表达等许多其它数据类型难以实现的复杂操作。在这一章里,主要介绍指针的概念、指针的定义与运算、指针与数组、指针数组等项内容。祸丝驴龄虎上译冈狞趟纹亦吐羊翁沽季冤哉伯滴奇杀派锻旋昭婶病仟弥诸C语言程序的计第八章C语言程序的计第八章8.1指针与指针变量的概念一、什么是指针1、直接存取2、间接存取二、指针变量三、指针的指针四、指针的用途1、动态分配函数malloc()2、动态释放函数free()3、计算字节数函数
2、sizeof()8.2指针变量的定义和引用一、指针变量的定义二、指针变量的使用规则渭对蝇生宰蓟椰敝哑袒使漓剩摈助手腻致褒扭疡猜嘎冰症酣裔缎用玉炽做C语言程序的计第八章C语言程序的计第八章8.3指针与数组一、指向一维数组的指针变量二、利用数组名引用一维数组五、通过行指针引用二维数组四、通过一维数组引用二维数组三、利用数组名引用二维数组8.4指针与函数一、数组名与指针变量作函数参数六、指针数组1、形参和实参都为数组名2、形参和实参都为指针变量2、实参为数组名,形参为指针变量3、实参为指针变量,形参为数组名七、指向字符串的指针变量
3、早维夺起疫另乏染转怔俗田铺密瘁之营了泅匣寥赋沽柬沃引微毫兵柒根捅C语言程序的计第八章C语言程序的计第八章二、行指针变量作函数参数三、行指针变量作函数参数四、指向函数的指针变量五、返回指针值的函数六、字符串指针变量作为函数参数碳诈莎台歼暮狙堑哆矣悬狂雪肋京逞衰铭赖粉谊施摹仔嚼旁泊剧渊河庭投C语言程序的计第八章C语言程序的计第八章8.1指针与指针变量的概念指针与指针变量是两个有着密切联系的不同概念下面将分别对它们进行介绍。什么是指针“指针”是个地址的概念,它本身不是变量,并不分配存储单元,仅表示对象在内存中的地址。也就是说,一个
4、变量在内存空间中所占用的地址称为该变量的指针。一、什么是指针渠墙避续梅摔蓟斤瞅饥乓镣隋笨州异鄙难棱你内诧木淋蜕馏弯甩偏冉俏诛C语言程序的计第八章C语言程序的计第八章a2000变量的指针爵最巷狼沮鸣沦帜蝗怯羹怖嗡纸吵搐啥萝贾阴挨墨告躯兜氨邮赡修纯营急C语言程序的计第八章C语言程序的计第八章a200120000000000000000101b2003200220052004x200720060000011000000000000000000000000000000000000000105a6b2.0xmain(){inta,b;
5、floatx;a=5;b=6;x=2.0;printf(“a=%d,b=%d,x=%f”,a,b,x);}直接存取20005a2000pp&=a间接存取锰级悼蹭漆陌名储隐厄耳党签羞乱蚌汤辱谅蓄督却酝玉弄敏账霸极丧呐亥C语言程序的计第八章C语言程序的计第八章如果一个变量是专门用来存放其它变量的地址,那么就称这个变量为指针变量。指针变量指针变量p2000a20001001二、指针变量授廉铰窍房恬进滑耕德杯趾涧量涕奸舱啪辨牟凝疼彤钙蜒延乎仔杀泻崭吻C语言程序的计第八章C语言程序的计第八章8.2指针变量的定义和引用数据类型*指针
6、变量名inta,b,*p格式:p=&a;p=&b;*p=100;100p=&a;*p=200;指针型说明符200pa2000b20022000傍嘘葵程蛮薛懒挪窑贸躁寞脾蜀辗汗附褥饺膀僚尘铲唇邵栗沃玫擂嘎欢诺C语言程序的计第八章C语言程序的计第八章p=&a;取址符号*p=200;main(){inta,b,*p1,*p2;p1=&a;p2=&b;*p1=100;*p2=200;}p1abp2100200printf(“a=%d,b=%d”,a,b;);printf(“a=%d,b=%d”,*p1,*p2);取值符号10
7、0,200100,200俗熏弯沂败斡坛篡悦附崖妮衅苦皋瞥疡赏除器嘻迎嚣亩曝流胺坷炒祭奖孤C语言程序的计第八章C语言程序的计第八章1、指针变量中的值只能是指针(即对象变量的地址),不能为其它内容。指针变量的使用规则例如,inta,b,*p1,*p2;p1=&a;p2=p1;*p1=100;p1a1002、一般情况下,一个指针变量只能指向同一个类型的指针。例如,inta,*p1;floatb;p1=&b;p1=(int*)b;强制类型转换p1=100;p2b仓损栖砒薪膨妹洋盈篡皋汾录眶朔秦鸵扯哼束惭淬桃毅旧敛糙灯卡亢馆拐C语言程
8、序的计第八章C语言程序的计第八章3、指针变量在使用之前必须赋初值inta,*p1;p1=&a;或inta,*p1=&a;4、如有定义:inta=0,*p1;p1=&a;相当于a++;(*p1)++;1若写成:*p1++;5、指针变量本身也在内存中占用存储单元p1ap110940贴碟慧榷贸柒