系统提供一段连续的内存来存储数组中的各元素,内存都有地址,指针变量就是存放地址的变量,如果把数组的地址赋给指针变量,就可以通过指针变量来引用数组了。
1定义一个数组时,系统在内存中为数组分配一个存储空间,数组名就是数组在内存中的首地址。
如果定义一个指针变量,并且将数组的首地址传给这个指针变量,则该指针就指向了这个一维数组。
int *p,a[10];
p=a;
这里a就是数组名,也是数组的首地址,将它赋给指针变量p,就是将数组a的首地址赋给p。
int *p,a[10];
p=&a[0]; ——————数组首地址值赋给指针变量
如何通过指针方式引用一维数组中的元素呢?
int*p,a[5];
p=&a;
#include<stdio.h>
int main()
{
int arr[3]={1,2,3};
int*p=arr;
printf("%d\n",*arr);
for(int i=0;i<3;i++);{
printf("%d",p[i]);
}
for(int i=0;i<3;i++);{
printf("%d",*(arr+i));
}
for(int i=0;i<3;i++);{
printf("%d",*arr++); /*编译不过,指针常量*/
}
return 0;
}