指针和指针变量

指针和指针变量

ID:43978366

大小:360.00 KB

页数:61页

时间:2019-10-17

指针和指针变量_第1页
指针和指针变量_第2页
指针和指针变量_第3页
指针和指针变量_第4页
指针和指针变量_第5页
资源描述:

《指针和指针变量》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第七章指针7.1指针和指针变量7.2数组的指针和指向数组的指针变量7.3字符串的指针和指向字符串的指针变量7.4函数的指针和指向函数的指针变量7.5返回指针值的函数7.6指针数组和指向指针的指针[Return]7.1指针和指针变量概念内存地址:内存中存储单元的编号计算机硬件系统的内存储器中,拥有大量的存储单元,为了方便管理,必须为每一个存储单元编号,这个编号就是存储单元的“地址”。每个存储单元都有一个惟一的地址注意:内存单元的地址与内存单元中的数据是两个完全不同的概念变量地址;系统分配给变量的内存单元的起始地址变量值的存取通过变量在内存中的地址进

2、行变量存取的方式:直接访问:直接利用变量的地址进行存取如:scanf(“%d”,&num)间接访问:通过另一变量访问该变量的值,即定义一种特殊的变量(称为指针变量),用来存放其它变量的地址593000300030024000变量i变量j变量i_pointer指针与指针变量指针:即地址,一个变量的地址称为该变量的指针指针变量:专门用于存放其它变量地址的变量,指针变量的值是指针,即变量num的地址指针与指针变量的区别:即变量值与变量的区别为表示指针变量和它指向的变量之间的关系,用指针运算符“*”表示如:i=3;/*将3直接赋给变量i*/i_point

3、er=&i;/*使i_pointer指向i*/*i_pointer=3;/*将3赋给指针变量i_pointer指向的变量*/指针变量的定义指针变量的定义的一般形式:数据类型*标识符;如:int*p;char*str;标识符前面的*表示该变量为指针变量一个指针变量只能指向同一类型的变量,即只有同一类型变量的地址才能放到指向该类变量的指针变量中注意:此时的指针变量p、str并未指向某个具体的变量(称指针是悬空的)。使用悬空指针很容易破坏系统,导致系统瘫痪指针变量的引用&:取地址运算符*:指针运算符[例7.1.1]指针变量的定义与引用main() {i

4、nta,b;int*p1,*p2;/*定义指针变量*p1、*p2*/a=100;b=10;p1=&a;/*把变量a的地址赋给p1*/ p2=&b;/*把变量b的地址赋给p2*/printf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}注:如果执行了“p1=&a;”语句,则&*p1与&a相同指针变量的运算赋值运算inta=1,b,*p;p=&a;b=*p;算术运算++、--p++/++P、P--/--P(*p)++a++*(p++)加、减整型数据p±n:将指针从当前位置向前(+n)或回退(-n)n个数据单位,

5、而不是n个字节指向同一数组的不同元素的指针之间的减法p1-p2:两指针之间的数据个数指针变量的比较运算:地址之间、位置的前后关系,前者为小,后者为大指针变量的下标运算:p[i]*(p+i)p=1;×1199abp[例7.1.2]输入两个整数,按从大到小顺序输出main(){inta,b,*p1,*p2,*p;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;if(a

6、n”,*p1,*p2);}运行情况如下:5,9a=5,b=9max=9,min=5p&ap15a&bp29bp&bp15a&ap29b指针变量作函数参数指针变量,既可以作为函数的形参,也可以作函数的实参指针变量作实参时,是将一个变量的地址传送到另一个函数中注意:被调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值[例7.1.3]输入两个整数,按从大到小顺序输出swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*m,*n;scanf(“%d,%d”,&

7、a,&b);m=&a;n=&b;if(a

8、,*n);}运行情况如下:5,95,9ma&a5&bn9b(a)m&aa5&bp29b&ap1&bn(b)ma&a5&bn9b(d)m&

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。