c语言中指针的用法

c语言中指针的用法

ID:36291188

大小:224.50 KB

页数:32页

时间:2019-05-08

c语言中指针的用法_第1页
c语言中指针的用法_第2页
c语言中指针的用法_第3页
c语言中指针的用法_第4页
c语言中指针的用法_第5页
资源描述:

《c语言中指针的用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、指针夏涛5.3指针的运算(3)指针相减运算假设指针px和py是指向同一组数据类型相同的数据,则px-py的运算结果是两个指针间数据的个数。所以px和py之差并不是px和py两指针内所包含地址量之差,而是由如下公式计算决定:px-py=((px)-(py))/sizeof(指针的目标变量的数据类型)例:如果px和py是指针变量px=2048py=1024px和py的目标变量的数据类型为double,则px-py=((px)-(py))/sizeof(double)=(2048-1024)/8=128即px和py之间有128

2、个double类型的数。5.3指针的运算5.3.2指针的关系运算两个指向同一组相同类型数据的指针之间可以进行各种关系运算。两个指针之间的关系运算表示它们的目标变量的地址位置之间的关系。指针的关系运算应注意以下几点:两个不同数据类型的指针之间的关系运算是无意义的。指针与一般整数之间的关系运算也是无意义的。指针可以和0进行“==”或“!=”比较,用以判断其是否为空指针。关系运算符有:小于<大于>等于==大于等于>=小于等于<=不等于!=5.3指针的运算例:int*px,*py;pxpypx==pypx>=p

3、ypx<=pypx!=py若关系成立,表示px所指的目标变量存放的位置在py所指的目标变量存放的位置之前。若关系成立,表示px所指的目标变量存放的位置在py所指的目标变量存放的位置之后。若关系成立,表示px所指的目标变量存放的位置在py所指的目标变量存放的位置相同。若关系成立,表示px所指的目标变量存放的位置在py所指的目标变量存放的位置之后或相同。若关系成立,表示px所指的目标变量存放的位置在py所指的目标变量存放的位置之前或相同。若关系成立,表示px所指的目标变量存放的位置在py所指的目标变量存放的位置不同。5.3指

4、针的运算5.3.3指针的赋值运算对指针可以进行赋值运算,所赋的值一定是地址量,一般不能是数据。赋值形式有以下几种:可以把一个变量的地址赋给与其具有相同数据类型的指针。例:intx,*px;px=&x;具有相同数据类型的两个指针可以相互赋值。例:float*px,*py,y;px=&y;py=px;可以把一个数组的地址赋给与其具有相同数据类型的指针。例:doublea[30],*pa,*pb;pa=a;pb=&a[0];5.3指针的运算其他常用的赋值运算设px和py是具有相同数据类型的两个指针,则以下赋值是合法的。

5、px=py+n;px=py-n;px+=n;px-=n;n是地址量。对指针的目标变量的赋值对指针的目标变量所赋的值一定是数据。要注意数据类型的统一。例:intx,*p,y;p=&x;*p=10;等效于x=10y=*p-5;最后y=5返回主菜单5.4.1指向数组的指针5.4.2指向数组的指针的应用5.4指针与数组5.4指针与数组返回主菜单5.4指针与数组5.4.1指向数组的指针数组名就是数组元素的首地址,数组元素是连续存放在一片内存空间中,C语言可以用指针访问数组的元素。用指针访问数组的元素的作法是,根据前面所述的数组、指

6、针的概念,首先定义一个数组和指针并使指针指向该数组,例如:floatx[10],*px;px=x;px=&x[0];访问数组的元素还有其它特殊的方法。介绍如下:设(定义一个一维数组a和指针pa):inta[10],*pa;使指针pa指向数组apa=a;下标法(用下标符):引用数组某元素的方法是:a[i]。例如:a[0],a[1]…a[9]。地址法:引用数组某元素的方法是:*(a+i)。例如:*(a+0),*(a+1),…*(a+9)。指针法(用指针运算符):引用数组某元素的另一种方法是:*(pa+i)。例:*(pa

7、+0),*(pa+1),..*(pa+9).用指针加下标的方法引用数组某元素:pa[i]。例如:pa[0],pa[1],…pa[9]。5.4指针与数组说明:1、虽然上述的三种方法都能输出同样的结果,但它们的效率是不同的。用下标法访问数组时,是转换成地址法处理的,即先计算出数组元素的地址,然后再找到它指向的存储单元,读出或写入它的值。而用指针变量指向数组元素时则不必每次计算数组元素地址。2、使用指针访问数组元素时,完全根据地址来访问,而不作“下标是否越界”的检查。3、使用指向数组元素的指针变量时,应当注意指针变量的当前值。

8、例如:inta[5];p=a;for(i=0;i<5;i++)scanf(“%d”,p++);5.4指针与数组inta[10],*p;p=a;2000200220042006200820102012201420162018&a[0]&a[1]&a[2]&a[3]&a[4]&a[5]&a[6]&a[7]&a[8]&a[

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

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

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