示例1:
# include <stdio.h>
int main(void)
{
int a[5] = {1,2,3,4,5};
//定义了一个长度为5的物理空间数组 ,每个长度为1的空间都有自己独有的物理地址十六进制
//a[3] == *(3+a);
printf("%p\n", a+1); //此时输出的为 物理地址 即a[2]
printf("%p\n", a+2);
printf("%d\n", *a+3); //*a+3等价于 a[0]+3,* 的作用是转义物理地址,取该地址所存储的数值
return 0;
}
输出结果
000000000062FE04
000000000062FE08
4
示例2:
# include <stdio.h>
void Show_Array(int * p, int len)
{
int i = 0;
for (i=0; i<len; ++i)
printf("%d\n", p[i]);
//p[2] = -1; //p[0] == *p p[2] == *(p+2) == *(a+2) == a[2]
//p[i]就是主函数的a[i]
}
int main(void)
{
int a[5] = {1,2,3,4,5};
Show_Array(a, 5); //a等价于&a[0], &a[0]本身就是int *类型
//printf("%d\n", a[2]);
return 0;
}
输出结果:
1
2
3
4
5