c语言程序设计善于利用指针

c语言程序设计善于利用指针

ID:36324550

大小:1.64 MB

页数:32页

时间:2019-05-09

c语言程序设计善于利用指针_第1页
c语言程序设计善于利用指针_第2页
c语言程序设计善于利用指针_第3页
c语言程序设计善于利用指针_第4页
c语言程序设计善于利用指针_第5页
资源描述:

《c语言程序设计善于利用指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第8章善于利用指针C语言程序设计北京航空航天大学交通科学与工程学院徐国艳2/56指针的概念指针和指针变量指针与数组指针做函数参数8.18.28.38.4章节内容3/56访问内存的两种方式:直接访问:按地址直接存取&a间接访问:通过指针i间接存取8.1指针的概念什么是指针?如何使用指针?100010081004102310abc3.551000i对于inta=10,c=5;floatb=3.5;内存分配例a的地址a的内容指针a的地址a是整型变量,存放内容i是指针变量,存放地址a的地址=a的指针指向a4/56用指针i访问:用i++可以指向字符串中的每个

2、地址!8.1指针的概念1000i用指针实现顺序访问charc[]=“GOOD!”;例Gc[0]OO内存分配D!c[1]c[2]c[5]1000100210011023为什么要使用指针?5/568.2指针和指针变量一、指针、指针变量与指向例:inta=10,*i,x;floatb=3.5,*p1;charc,*p2=&c;i=&a;p1=&b;x=*i;10i*ia1000指针=地址指针变量:存放地址的变量指针变量是一种新的数据类型1000是a的指针i是指针变量*i=a二、指针变量的定义与赋值数据类型*指针变量名1000*i是i指向的变量a指针运

3、算*i*i定义指针变量指针初始化指针赋值6/56三、指针变量的赋值与操作*--指针运算符&--取地址运算符同级,右结合指针变量的赋值inta=3,*p,*p1,*p2,*p3,p4;p=&a;/*取a地址运算*/p1=p;/*直接赋值*/p2=NULL;/*赋空值,不指向任何变量*/p3=0;指针变量的操作inta=3,*p,*p1,k;p=&a;/*a地址P*/k=*P;/*3k*/*p=20;/*20a*/*&a=30;/*先取a的地址,再按地址赋值30a*/p1=&*p;/*因为&*p=&a,操作结果使p1指向a*/7/56四、指针的引

4、用例8.1:指针的赋值与输出voidmain(){inta=10,b,c,*p;p=&a;b=*p;c=a;printf("%d,%d,%d",a,b,c);printf("%d,%d,%d",*p,p,&a);}输出结果:10,10,1010,1739919326,1739919326printf(“%d,%d",*&a,&*p);第三行输出结果:10,1739919326指针赋值指针运算指针输出8/56方法1:目标变量值不变,改变指针变量的 指向求解。voidmain(){inta,b,*p1,*p2,*p;p1=&a;p2=&b;s

5、canf(″%d%d″,p1,p2);if(*p1<*p2){p=p1;p1=p2;p2=p;}printf(″a=%d,b=%d″,a,b);printf(″max=%d,min=%d″,*p1,*p2);}abp1p2p68a=6,b=8max=8,min=68.2指针和指针变量【例8.2】输入a、b两个整数, 使用指针变量按大小顺序输出 这两个整数。9/56方法2:利用指针变量直接改变目标变量的值 求解。voidmain(){inta,b,t,*p1,*p2;p1=&a;p2=&b;scanf(″%d%d″,p1,p2);if(*p1<

6、*p2){t=*p1;*p1=*p2;*p2=t;}printf(″a=%d,b=%d″,a,b);printf(″max=%d,min=%d″,*p1,*p2);}a、*p1b、*p2p1p2t68a=8,b=6max=8,min=68.2指针和指针变量68610/56指针的加减运算8.2指针和指针变量五、指针的基本运算voidmain(){inta[]={10,20,30,40,50},*p1,*p2;p1=p2=a;printf(″p1=%u,*p1=%d″,p1,*p1);p2+=3;printf(″p2=%u,*p2=%d″

7、,p2,*p2);}P1=404,*p1=10P2=416,*p2=40404408412416420a[0]a[1]a[2]a[3]a[4]3020104050p1p2指针加减运算要点:①只有当指针变量指向数组时指针的加减 运算才有意义。②指针变量可加减一个整型表达式。如:p1++、p2+3、p2--、p2-2。③指针的加减运算是以基类型为单位(即sizeof(类型))的。④两个指针变量不能作加法运算,只有当 两个指针变量指向同一数组时,进行指针变 量相减才有实际意义。如:p2-p1。11/56指针的关系运算8.2指针和指针变量五、指针的基本运算a

8、[0]a[1]a[2]a[3]a[4]3020104050p1p2①指向同一数组的两个指针可以进行关系 运算

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

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

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