本文探讨了C语言中指针p指向数组a内特定元素ai的三种方式,包括直接赋值、取址赋值及逐步定位的方法,帮助读者理解指针操作的基础技巧。
C语言代码如下所示:
```c
#include
int main()
{
int a[4] = {3, 5, 7, 9};
int i;
int *p,*q;
for(i=0; i<4; i++)
{
p=a+i; // 这里,p 是指针实质上是一个地址,在数组中即为下标。a也是指向数组的首个元素,此处需要遍历数组的每一个元素所以采用 a + i;
printf(%d, *p); //*p 表示 P 所指向的内容, 即 *(a+i) = a[i]
}
printf(\n);
for(i=0; i<4; i++)
{
p=&a[i]; // 让P指向数组a中的每个元素
printf(%d, *p);
}
printf(\n);
q=a; // 表示指向数组 a 的首个元素,即 a[0], 并非整个数组
for(i=0; i<4; i++)
{
printf(%d, *q);
q++; // 地址自增依次往后推 循环四次输出整个数组, 虽然指出已经越界了但是循环结束,其实向其他页没关系
}
printf(\n);
return 0;
}
```
这段代码展示了如何通过指针遍历一个整数数组。首先定义了一个包含4个元素的数组a,并初始化其值为3,5,7和9。接下来使用三个循环分别以不同的方式输出这些数值,每个循环都利用了C语言中指针的概念来访问数组中的各个元素。