int main() {
int a[5] = { 1,2,3,4,5 };
int* pa = &a;
printf("%p\n", pa);
printf("%p\n",pa+1);
int* pa1 = a;
printf("%p\n", pa1);
printf("%p\n", pa1 + 1);
printf("%p\n", a);
printf("%p\n", a + 1);
printf("%p\n", &a);
printf("%p\n", &a + 1);
return 0;
}
运行结果 (如上图)
运行结果使本人发现int* pa=&a 和int* pa1=a是等效的,所以有些疑惑,不是说&a是指向数组的指针,而a是数组元素决定类型的指针吗?、
经过思考和google,我认为是int*强制决定了pa和pa1的类型为int型指针而不是数组类指针,故出现上述结果。