指针和数组
数组名是数组首元素的地址
p+i 其实计算的是数组 arr 下标为i的地址。
指针和数组一样的写法
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10};
int* p = arr;//数组名首元素的地址
//[] 是一个操作符 2和arr是两个操作数
//a+b
//b+a
printf("%d\n", 2[arr]);
printf("%d\n", arr[2]);
printf("%d\n", p[5]);//p[5] --> *(p+5)
printf("%d\n", 5[p]);
//arr[2] --> *(arr+2)-->*(2+arr)-->2[arr]
//arr[2] <==> *(arr+2) <==> *(p+2) <==> *(2+p) <==> *(2+arr) == 2[arr]
//2[arr] <==> *(2+arr)
return 0;
}