c程序设计 第10章 指针

c程序设计 第10章 指针

ID:43341846

大小:371.50 KB

页数:65页

时间:2019-10-08

c程序设计 第10章 指针_第1页
c程序设计 第10章 指针_第2页
c程序设计 第10章 指针_第3页
c程序设计 第10章 指针_第4页
c程序设计 第10章 指针_第5页
资源描述:

《c程序设计 第10章 指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第10章指针主要内容:变量的指针和指向变量的指针变量数组的指针和指向数组的指针变量字符串指针和指向字符串指针变量使用指针的优点:1、能有效地表示复杂的数据结构2、能动态分配内存3、能方便地使用字符串和数组4、在函数调用时能获得一个以上的值5、能直接处理内存地址地址-------------内存字节编号内存单元-------存放数据的基本单位变量名----------标识内存单元指针--变量地址(变量所占内存单元首字节地址)指针变量-------存放变量地址§10.1指针的概念C程序对变量值的存取方式1、“直接访问”方式:按变量名与内存地址的对应关系直接

2、按变量地址存取。2、“间接访问”方式:通过指向变量的指针,对其指向的变量值进行间接存取。10.1地址和指针的概念在编译时就给这个变量分配内存单元图10.210.2变量的指针和指向变量的指针变量变量的指针就是变量的地址。存放变量地址的变量是指针变量,用来指向另一个变量。图10.3一、指针变量的定义类型符*指针变量名;例:float*p1,*p2;int*p3,*p4;二、指针变量的引用1、相关的运算&—取地址运算符*—指针运算符例:&a(a变量的地址)*p(指针变量p所指向的变量)p=&a;pointer_1=&i;*pointer_1的值为i的值poi

3、nter_2=&j;*pointer_2的值为j的值在定义指针变量时要注意:指针变量前面的“*”,表示该变量的类型为指针型变量。在定义指针变量时必须指定基类型。只能取已经分配了内存变量的地址赋给指针变量指针使用前必须有合法的地址值。int*p;*p=20;例10.1通过指针变量访问整型变量。main(){inta,B;int*pointer-1,*pointer-2;a=100;B=10;pointer-1=&a;/*把变量a的地址赋给pointer-1*/pointer-2=&B;/*把变量B的地址赋给pointer-2*/printf("%D,%

4、D",a,B);printf("%D,%D",*pointer-1,*pointer-2);}图10.5图10.6例10.2整数,按先大后小的顺序输出a和B。main(){int*p1,*p2,*p,a,B;scanf("%D,%D",&a,&B);p1=&a;p2=&B;if(a<B){p=p1;p1=p2;p2=p;}/*同类型指针*/printf("a=%D,B=%D",a,B);printf("max=%D,min=%D",*p1,*p2);}2、指针与算术运算px+n等价于(p)+n*sizeof(数据类型)px-n等

5、价于(p)-n*sizeof(数据类型)&、*与++、--运算同级同级运算从右到左例:*p++等价于*(p++),即*p,p++;若:p=&a;则:(*p)++等价于a++&*p等价于&a*&a等价于a10.2.3指针变量作为函数参数共享内存,“双向”传递swap(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}main(){inta,B;int*pointer-1,*pointer-2;scanf("%D,%D",&a,&B);pointer-1=&a;pointer-2=&B;if(a<B) sw

6、ap(pointer-1,pointer-2);printf("%D,%D",a,B);}如果想通过函数调用得到n个要改变的值:①在主调函数中设n个变量,用n个指针变量指向它们;②然后将指针变量作实参,将这n个变量的地址传给所调用的函数的形参;③通过形参指针变量,改变该n个变量值;④主调函数中就可以使用这些改变了值的变量。#includevoidfunction(inta,intb,int*c,int*d){*c=a+b;*d=2*a+b;}main(){intx,y,z,t;scanf("%d,%d",&x,&y);func

7、tion(x,y,&z,&t);printf("z=%dt=%d",z,t);}主子程序之间数据传递的方式:1.实参----形参的值传递;return语句。2.全局变量。3.形参为指针。4.函数参数(形参或实参)为数组名或指针。10.3数组的指针和指向数组的指针变量指针变量可以指向数组和数组元素(把数组起始地址或某一元素的地址放到一个指针变量中)。所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。引用数组元素可以用下标法(如a[3]),也可以用指针法,即通过指向数组元素的指针找到所需的元素。数组的指针:int*p,a[10];p=a

8、;数组首地址数组第一个元素的地址(指针)注意:数组名代表数组首地址(是常量)数组元素的指针:p

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

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

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