浙江大学C颜晖原版课件C8.ppt

浙江大学C颜晖原版课件C8.ppt

ID:50442993

大小:363.50 KB

页数:88页

时间:2020-03-09

浙江大学C颜晖原版课件C8.ppt_第1页
浙江大学C颜晖原版课件C8.ppt_第2页
浙江大学C颜晖原版课件C8.ppt_第3页
浙江大学C颜晖原版课件C8.ppt_第4页
浙江大学C颜晖原版课件C8.ppt_第5页
资源描述:

《浙江大学C颜晖原版课件C8.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章指针指针指针和数组指针和字符串指针数组和二级指针指针和函数8.1指针变量地址内容intx;x=3;printf(“%d”,x;)x20013px30002001直接访问:通过变量名直接访问地址间接访问:把变量的地址放到另一变量中,使用时先找到后者的地址,从中取出前者的地址指针变量地址另一变量的地址变量地址内容x20013px30002001指针变量地址另一变量的地址指针变量:存放地址的变量某个变量的地址指向指向intx;x=3;printf(“%d”,x;)8.1.1指针变量的定义指针变量所指向变量的类型int*px;px是整型指针,指向整型变量floa

2、t*pf;pf是浮点型指针,指向浮点型变量char*pc;pc是字符型指针,指向字符型变量类型名*指针变量名;类型名*指针变量名;int*p1,*p2;等价于int*p1;int*p2;int*px;注意:指针变量名是px,不是*px8.1.2指针的基本操作*p:p所指向的变量aa3&ap*p1、&和*&取地址运算符*指针运算符(间接访问运算符)int*p,a=3;p=&a;把a的地址赋给p,即p指向aa3&ap*p输入57输出:3,35,57,710,10main(){inta=3,*p;p=&a;printf(“%d,%d”,a,*p);scanf(“

3、%d”,&a);printf(“%d,%d”,a,*p);scanf(“%d”,p);printf(“%d,%d”,a,*p);*p=10;printf(“%d,%d”,a,*p);}例8.1指针运算b10&bp2*p2输出:100,10100,10a100&ap1*p1main(){inta,b;int*p1,*p2;a=100;b=10;p1=&a;p2=&b;printf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}例8.2指针运算a3&ap*p指针运算注意事项(1)当p=&a后,*p与a相同。(2)i

4、nt*p;定义*p=10;p所指向的变量(3)&*p与&a相同,是地址*&a与a相同,是变量a3&ap*p当p=&a时(4)(*p)++等价于a++将p所指向的变量值加1*p++等价于*(p++)先取*p,然后p自加,此时p不再指向a2、赋值=a3&ap1p2=p1;p2也指向a&ap2*p1*p2int*p1,*p2,a=3;p1=&a;把a的地址赋给p1,即p1指向a输出:10,100例8.3指针赋值main(){inta,b;int*p1,*p2;a=100;b=10;p1=&a;p2=p1;p1=&b;printf(“%d,%d”,*p1,*p2)

5、;}b10p1a100p28.1.3指针变量的初始化例8.4-1voidmain(){inta=1,b=2;int*p1=&a,*p2=&b,*pt;printf(“%d,%d”,*p1,*p2);pt=p1;p1=p2;p2=pt;printf(“%d,%d”,*p1,*p2);}b2&bp2a1&ap1b2&ap2a1&bp18.1.3指针变量的初始化例8.4-2voidmain(){inta=1,b=2;int*p1=&a,*p2=&b,t;printf(“%d,%d”,*p1,*p2);t=*p1;*p1=*p2;*p2=t;printf(

6、“%d,%d”,*p1,*p2);}b2&bp2a1&ap1b1&bp2a2&ap18.1.4指针作为函数的参数swap1(intx,inty){intt;t=x;x=y;y=t;}输出:3,5a35bx35yx53y例8.5main(){inta=3,b=5;swap1(a,b);printf(“%d,%d”,a,b);}swap2(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;}输出:5,335abp1p25335值传递,地址未变,但存放的变量的值改变了main(){inta=3,b=5;swap2(&a,&b);

7、printf(“%d,%d”,a,b);}swap3(int*p1,int*p2){int*p;p=p1;p1=p2;p2=p;}35abp1p2值传递,形参指针的改变不会影响实参main(){inta=3,b=5;swap2(&a,&b);printf(“%d,%d”,a,b);}输出:3,5swap2(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;}main(){inta=3,b=5;swap2(&a,&b);……}要使某个变量的值通过函数调用发生改变(1)在主调函数中,把该变量的地址作为实参(2)在被调函数中,用

8、形参(指针)接受地址(3)在被调函数中

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

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

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