资源描述:
《C语言 第10章 指针课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、指针地址与指针的概念指针与变量指针与数组指针与字符串指针与函数[**]返回指针值的函数指针数组和指向指针的指针动态内存分配有关指针的数据类型和指针运算小结1.地址和指针的概念地址:内存的编号,基本单位是字节。内存单元与内存单元的内容:数值被存储在连续的若干个内存单元中;数值的存取通过变量进行,编译时已经将变量名自动转换为内存地址,物理上的存取是通过地址进行的;直接访问:按变量地址直接存取变量值。间接访问:将变量i的地址存放在另一个变量ip中,通过ip访问变量i的值。inti=100;//连续4个字节变量i2000变量ip10020001.地址和指针的概念因此,
2、数值100送到变量中有两种方法:将100送到变量i标志的单元中;将100送到变量ip指向的单元中。[即:i标志的单元]指针:一个变量的地址称为该变量的“指针”。指针变量:专门用来存放另一个变量地址的变量称为指针变量;指针变量的值是指针。inti=100;//连续4个字节变量i2000变量ip1002000程序中*表示“指向”,*ip与i是同一回事i=100;*ip=100指针变量的定义语句:例如:int*pA;//指向整数变量的指针变量char*pCh;//指向字符变量的指针变量float*pF;//指向实数变量的指针变量在指针定义中,一个*只能表示一个指针。
3、例如:int*pA,pB;//pA是指针变量名,pB是一个普通的整形变量。int*pAa,*pBb;//pAa和pBb都是指针变量。定义指针变量指针运算符:&:取地址运算符;*:放在操作语句中的指针之前,称为间接访问运算符。如:inta,b=10,c;int*ipa,*ipb;ipa=&a;ipb=&b;c=*ipa;指针变量使用前必须初始化;注意变量与指针的区别;inta,*ipa;ipa=100;//错误*ipa=&a;//错误指针变量的值是可以改变的,即改变指针的指向;inta=10,b=20;int*ipa,*ipb;ipa=&a;ipb=&b;*ip
4、a=*ipb;ipa=ipb;*ipa=10;102020003000a:地址为2000b:地址为3000ipaipb指针变量的引用2.指针与变量注意指针运算的组合:inta=100,*ipa;ipa=&a;&*ipa?*&a?(*ipa)++?*(ipa++)?*ipa++?*(++ipa)?++*ipa?&*ipa=>&a=>ipa*&a=>*ipa=>a(*ipa)++=>a++*(ipa++)首先取出ipa指向的单元内容,然后ipa指向a的下一个类型单元*ipa++与*(ipa++)等效*(++ipa)首先ipa指向下一个类型单元,然后取出该类型单元的
5、内容++*pa=>++(*ipa)ipa指向的单元内容加1即:a=101100aipamain(){int*p1,*p2,*p,a,b;scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(a
6、1;*p1=*p2;*p2=temp;}main(){inta,b;int*ip1,*ip2;scanf("%d,%d",&a,&b);ip1=&a;ip2=&b;if(a
7、nta,b;scanf("%d,%d",&a,&b);if(a
8、,但可以改变实参指针变量所指变量的值。