首页 理论教育C语言指针变量指向一维数组元素

C语言指针变量指向一维数组元素

【摘要】:图8.3用指针修改数组元素的值使用指针变量表示数组元素示例。另外,在输出数组值的操作中,首先让指针变量p指向数组0号元素,然后通过循环控制中的p++运算,使得指针变量p依次指向a数组的其他元素,通过*p的方式表达数组元素值。程序执行的结果为:0010000如果有两个指针变量分别指向同一个数组的两个不同元素,则两个指针变量之间的距离表示了它们之间的差距有多少个数组元素。

定义合适的指针变量后,例如int a[10],*p;,则可以使用指针变量p指向数组a中的任何一个数组元素。通过下列写法可以使p指向a[0]。

p=&a[0];

其结果可以用图8.2的方式表示。

图8.2 指针指向数组第一个元素

当需要表示指针变量所指向的数组元素值时,使用指针运算符(*)。例如,有p=&a[i]时,则*p等价于a[i],此时如果要向数组i号元素赋值,可以使用下面两种形式:

*p=<表达式>  或者  a[i]=<表达式>

现在可以通过p访问a[0]。例如,可以通过下列写法把值5存入a[0]中:

*p=5;

图8.3显示的是现在的情况。

图8.3 用指针修改数组元素的值

【例8.6】 使用指针变量表示数组元素示例。(www.chuimin.cn)

上面程序中,表达式p=&a[2]使得指针变量p指向数组元素a[2],表达式*p=100表示将指针变量p所指向的数据对象赋值为100,即a[2]被赋值为100,所以程序的输出结果中,除数组元素a[2]的值为100外,其余的数组元素值都为0。另外,在输出数组值的操作中,首先让指针变量p指向数组0号元素,然后通过循环控制中的p++运算,使得指针变量p依次指向a数组的其他元素,通过*p的方式表达数组元素值。程序执行的结果为:

0  0 100  0  0

如果有两个指针变量分别指向同一个数组的两个不同元素,则两个指针变量之间的距离表示了它们之间的差距有多少个数组元素。例如,下面C语句序列执行后输出的结果为:“两个指针之间的数据元素个数为:5”。

int a[100],*p1,*p2;

p1=&a[5];

p2=&a[10];

printf("两个指针之间的数据元素个数为:%d\n",p2-p1);