用指针操作一维数组:
(一)定义一个一维数组a[5]、一个指针变量*p并初始化为一维数组首地址a,即*p = a = &a[0]。
对于一维数组和指针有如下等价关系(i为循环控制变量):
表示地址:&a[i] <---> a+i <---> p+i
表示元素:a[i] <---> p[i] <---> *(a+i) <---> *(p+i)
(二)数组名作函数参数
利用函数处理一维数组时,不需要将数组的每一个元素都传递给函数,只需要传递数组的
首地址和元素数量即可。而数组名代表数组首地址,所以将(数组名,元素个数)传递给函数即可。
//用指针访问一维数组的演示
(1)输出一维数组各元素的地址
#include<stdio.h>
int main()
{
int a[5], i;
int* p = a;
printf("(1)使用取址运算符&a[i]的形式获得元素地址:\n");
for (i = 0; i < 5; i++)
{
printf("&a[%d] = %p\n", i, &a[i]);
}
printf("(2)使用'首地址'数组名a+i的形式获得元素地址:\n");
for (i = 0; i < 5; i++)
{
printf("a+%d = %p\n