第七章 指针

第七章 指针

ID:43572661

大小:991.00 KB

页数:64页

时间:2019-10-11

第七章  指针_第1页
第七章  指针_第2页
第七章  指针_第3页
第七章  指针_第4页
第七章  指针_第5页
资源描述:

《第七章 指针》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第七章指针教师:宋秀琴内蒙古科技大学实训中心7.1地址和指针指针是数据类型的一种.为了有效的管理各存储单元,我们为每个存储单元进行编号,(以字节为单位)这个编号就是地址。地址也叫指针。如:inta=12,b=34,c=10;3050是a的地址,3054是b的地址,3058是c的地址。用&求出每个变量的地址&a,&b,&cprintf(“%d”,&a);则输出3050内存中有许多存储单元,存储单元用来存放数据。被存的数据是存储单元的内容。1什么是地址?什么又是指针?abc305030523053305112341030543055305730593056305

2、83060306130623063306430652什么是指针变量?指针变量是一种特殊的变量,它存放的不是普通的数值,而是另一个变量的地址。存放变量地址(指针)的变量,叫做指针变量。inta=12,b=34,c=10;内存中用户数据区abc305030523053p指针变量p=3054如果一个指针变量存放了另一个变量的地址,则形象的称指针变量指向那个变量。30511234103054305530573059*p3054305630583060306130623063306430653怎样使一个指针指向一个变量?用赋值语句。p=&b;有了这种指向关系*p是所指

3、变量b。p+1指向下一个变量&取地址运算符abc3050305230533051123410305430553057305930563058306030613062306330643065指针变量p=3054pp+17.2指针变量的定义指针的定义格式:基类型*指针变量名如:int*p;float*f;char*c;基类型:用来说明指针要指向的变量类型。不同类型的变量在内存中所占的字节数是不同的。当进行指针运算时,如指针移动1,系统内部的地址则根据基类型的不同移动不同的字节数,所以必须指定指针变量的基类型。注意1、*是指针运算符,在定义指针变量时和使用指针变量

4、时含义不同。在定义时,在变量名前加*表示该变量是指针变量,如float*p;当p指向某一变量时,*p是被指向的变量值。例int*p,a=12,b=34,c=10;*说明p是指针变量。p=&b;printf(“%d”,*p);*说明*p是p所指变量b。结果342、为指针赋值时,指针变量的基类型要与所指变量的类型相同int*p,a;char*q,b;p=&a;q=&b;p=&b;q=&a;×7.3指向简单变量的指针如:inta,b,c,*p1,*p2;变量abcp1p2地址10001004100810121016内容10a=10;b=20;c=30;2030指针

5、变量的三种赋值方式:1、p1=NULL;或p1=0;02、p1=&a;10003、p2=p1;1000也可以在定义的同时赋值:inta,*p=&a;inta,*p;P=&a;等价7.3.1指向简单变量指针的使用inta=1,b=2,*p1,*p2;p1=&a;p2=&b;printf(“%d”,*p1+*p2);指针变量的*运算:*p1、*p2,相当于整型变量a、b。&a1&b2abp1p2intia,*p=&a;scanf(“%d”,p);printf(“%d”,*p);例如:inta,*p=&a;scanf(“%d”,&a);printf(“%d”

6、,a);inta,*p=&a;sacnf(“%d”,*p);×int*p;p=&a;7.3.2指针运算指针变量和其他变量一样,也可以进行运算,因为指针变量中存放的是另一个变量的地址,所以它所能参加的运算又不同与其它变量。(1)直接访问变量运算用变量名对其所对应的存储单元进行访问的运算是直接访问变量运算如:printf(“%d”,a);(2)间接访问变量运算用存储单元的地址来对存储单元的内容访问的运算是间接访问变量运算。如int*p,a;p=&a;scanf(“%d”,p)printf(“%d”,*p);7.3.2指针的运算(3)取地址运算(&)运算符&称为取

7、地址运算符,它只能作用在变量上,而不能作用在常量或表达式上。它返回的是该变量在内存中的地址。(4)指针运算符(*)如:inta,*p=&a;*&a就是a,&*p就是p(&a);p指向a,*p与a等价。*运算的优先级与&运算优先级相同,结合性为右结合。*与&是一对互逆运算。7.3.2指针运算&a指针*地址指针运算*p变量&地址运算变量7.3.2指针的运算(5)指针的加减运算如果一个指针指向一个变量,指针加一或减一指向另一个变量(指针存放另一个变量的地址)(包括自增自减)。main(){inta=1,b=2,c=3;int*p;p=&a;printf(“%d”

8、,*p);p=p+1;或p++;printf(“%d

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

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

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