2015年计算机软考(初级程序员)复习笔记:指向一维数组元素的指针变量
02-02
0

为了帮助广大考生系统全面的复习好2015年计算机软件考试,我们考吧网特为广大考生整理了关于计算机软件考试辅导知识,希望通过本次练习,对您本次考试有所帮助。再次预祝广大考生顺利通关。

指针变量也能指向数组的元素。设有以下变量定义:

int a[100],*p;

赋值运算p=&a[0]使p指向a[0].表示&a[0]还有更简洁的方法,即数组名a.按约定,一维数组名表达式的值为数组存储区域的开始地址,即数组首元素的指针。对指向数组元素的指针允许作有限的运算。设有代码:

int *p,*q,a[100] ;

p=&a[10] ; q=&a[50] ;

(l)指向数组元素的指针可与整数进行加减运算。利用数组元素在内存中顺序连续存放的规定,和地址运算规则,有表达式 a+1为 a[1] 的地址,a+2为 a[2]的地址。一般地,表达式a+i为a[i]的地址。把这个结论应用于指向数组元素的指针,同样地成立。若p的值为a[0]的地址,则表达式p+i的值为a[i]的地址。或者说,p+i的值为指向a[i]的指针值。若p指向数组元素 a[10],则 p+n就表示指向数组元素 a[10+n],这里n是任意的整数表达式。

一般地,当指针变量指向数组a的元素时,不论数组元素的类型是什么,指针和整数n进行加减运算时,总是根据所指元素的数据存储字节长度 sizeof a[0] ,对n放大,保证加减n,使指针植向前或向后移动n个元素位置。

(2)当两个指针指向同一个数组的元素时,允许两个指针作减法运算。其绝对值等于两指针所指数组元素之间相差的元素个数。如表达式&a[4O]-&a[0]的值为40.

(3)当两个指针指向同一个数组的元素时,这两个指针可以作关系比较(<,<=, ==,>,>=,!=)。若两指针p和q指向同一个数组的元素,则p==q为真表示p,q指向数组的同一个元素;若p

利用运算符*可引用指针所指对象,*(a+i)表示引用a+i所指向的数组元素a[i] .这样。(a+i)就是 a[i].对于指向数组元素的指针变量p,若p指向a[10],*(p+i)表示引用p+i所指向的数组元素 a[10+i].

与用数组名和下桥引用数组元素的标记法相一致,指向数组元素的指针变量也可带下标引用数组的元素,即*(p+i)也可写成p[i] .但若p=&a[10],则p[i]引用的是a[10+i],p[2]引用的是a[8].

综上所述,引用数组元素有以下多种形式:

(1)用数组元素的下标引用数组元素,如 a[5].

(2)利用数组名表达式的值是数组首元素指针的约定,可利用指针表达式间接引用数组元素,如*(a+i) .

(3)利用指向数组元素的指针变量,用它构成指向数组元素的指针表达式,并用该表达式引用数组元素。如*(p+i)或p[i].

这里要强调指出用数组名a表达数组元素指针与用指向数组元素的指针p来表达数组元素的指针,在实际应用上的区别:p是变量,其值可改变,如p++;而数组名a只代表数组a的首元素的指针,它是不可改变的,程序只能把它作为常量使用。

编辑推荐:

2015年计算机软考(中级网络工程师)复习笔记汇总

相关内容

热门资讯

计算机软件水平考试信息处理技术... 计算机软件水平考试信息处理技术员复习笔记八
计算机软考数据库系统工程师考试... 计算机软考数据库系统工程师考试知识考点二
计算机软件水平考试信息处理技术... 计算机软件水平考试信息处理技术员复习笔记三
计算机软件水平考试信息处理技术... 计算机软件水平考试信息处理技术员复习笔记五
计算机软件水平考试程序员复习笔... 计算机软件水平考试程序员复习笔记:C语言的特点
2015年计算机软考(中级电子... 2015年计算机软考(中级电子商务设计师)复习笔记:设计MVC
2015年计算机软考(中级电子... 2015年计算机软考(中级电子商务设计师)复习笔记:可视化建模手艺的益处
计算机软考数据库系统工程师考试... 计算机软考数据库系统工程师考试知识考点一