《程序员考试强化》word版

《程序员考试强化》word版

ID:29658637

大小:106.51 KB

页数:12页

时间:2018-12-21

《程序员考试强化》word版_第1页
《程序员考试强化》word版_第2页
《程序员考试强化》word版_第3页
《程序员考试强化》word版_第4页
《程序员考试强化》word版_第5页
资源描述:

《《程序员考试强化》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、指针(一)变量的指针和指向变量的指针变量1、变量的指针就是指变量的地址。2、指针变量:用来专门存放地址的变量例如:inta=5,*p=&a;*代表取后面所表示的地址中的内容。&代表取后面内容所存放的地址。3、指针变量可作为函数的参数此时,形参与实参是共用一个内存空间的。注意是以指针变量,还是以指针变量的内容作为参数(二)数组的指针和指向数组的指针变量1、数组的指针就是数组的起始地址,数组元素的指针就是指存放数组元素的地址。2、指向数组元素的指针。这里的定义与指向变量的指针定义相同。只是这时给变量赋值是不是普通变量的地址,而是数组元素的地址。例如:inta[10],b,

2、*p=a;在C中规定:数组名就代表数组的首地址,因此a与&a[0]在值上是等价的。故:p=a可写成p=&a[0];3、通过指针引用数组元素。定义一个指向数组元素的指针p,然后将一个存在的数组的首地址给p,然后就可以通过p来引用数组中的元素。C中规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素(而不是将p的值简单加1)。例如:数组元素是实型,每个元素需要占4个字节,则p+1意味着使p的值(地址)加4个字节,以使它指向下一个元素。我们看一个例子:inta[10],*p=a;(1)p+I和a+I就是a[I]的地址,即,p+I,a+I,&a[I]

3、三者等价。其中a+I中的I跟p+I中的I的意义一样。12(2)*(p+I)或*(a+I)或a[I]是指数组的元素。而且三者是代表同一个元素。(3)指向数组的指针变量也可以跟数组名一样使用下标来引用。即p[I]与a[I]等价。4、几个注意点:(1)指针变量可以实现自身的值的改变。如:p++;而数组名则不允许,如:a[10]中,a代表数组a的首地址,如果可以自加运算的话,也就是数组在内存中存放的位置是随意变化的这是不可能的,因为只要分配空间后,不可能再移动的。故:a++是错误的。(2)要注意指针变量当前值。因为指针在移动后,如果不进行复位,则它不能象数组名一样每次使用时都

4、代表首地址,故当指针移动时可能超出范围。(3)指针变量的运算①p++使p指向下一个元素。②*p++,由于++和*同优先级,结合方向为自右向左,因此它等价于*(p++)。作用是:先得到p指向的变量的值(即*p),然后再使p+1→p。③*(p++)与*(++p)作用不同。前者是先取*p,后使p加1;后者是先使p加1,再取*p。④(*p)++表示p所指向的元素值加15、指向多维数组的指针和指针变量(1)多维数组的地址。(以二维数组为例)这里我们可以将二维数组看成一维数组的一维数组。如:inta[10][10];对第一行:a[0][I]:可以看成是数组名为a[0]的一维数组。

5、其它的同理。故如果写出a[0]+1,当然就代表a数组中的第二行的首地址,而不是a数组中的第二个元素的地址。*(a[0]+1)同样代表第二行的首地址,只是此时将该表达式加1时,不是在跑到下一行啦,而是在本行朝后移一个,也就是下一个元素的地址啦。下表小结:6、字符串的指针和指向字符串的指针变量(1)字符串的指针:指字符串的首地址。12(2)字符串的表示形式①用字符数组存放一个字符串。如:charstr1[]=”china”,str2[]={“china”},str3={‘a’,’b’,’’}②用字符指针指向一个字符串。如:char*str1=”china”;char*

6、str1;str1=”china”;这里是指将字符串的首地址赋给str1;注意:char*a;scanf(“%s”,a);这种方法C不会提示错误,但是不允许的,因为指针变量a,定义了,但没有指它指定具体的空间,故无法正确存放你输入的字符串。7、指针运算小结①指针变量加(减)一个整数C语言规定,一个指针变量加(减)一个整数并不是简单地将指针变量的原值加(减)一个整数,而是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加(减)。如p+I代表地址计算:如果p为整型,则该式代表p+I*2;②指针变量赋值将一个变量地址赋给一个指针变量。Int*p,a=1

7、00;p=&a;③指针变量可以有空值,即该指针变量不指向任何变量,表示成p=NULL,其中NULL是整数0.④两个指针变量可以相减如果两个指针变量指向同一个数组元素,则两个指针变量值之差是两个指针之间的元素个数,但两个指针变量相加就没有实际意义啦。⑤两个指针变量比较若两个指针指向同一个数组元素,则可以进行比较。结构体结构体属于构造类型,前面我们已学过的数组,它中间的各元素是属于同一类型的。但这远远不足,我们大量的是需要同一个数据中能包含多个不同类的数据,这就是结构体产生的原因。结构体的定义:Struct结构体名//结构体名是用作结构体类型的标志它不等

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

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

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