【发布时间】:2019-10-10 08:08:12
【问题描述】:
取消引用时指向元素数组的指针返回地址。 由于它保存了数组第一个元素的地址,因此取消引用它应该返回一个值。
int arr[] = { 3, 5, 6, 7, 9 };
int *p = arr;
int (*ptr)[5] = &arr;
printf("p = %p, ptr = %p\n", p, ptr);
printf("*p = %d, *ptr = %p\n", *p, *ptr);
输出:
p = 0x7fff6ea72d10, ptr = 0x7fff6ea72d10
*p = 3, *ptr = 0x7fff6ea72d10
为什么*ptr返回数组的基地址,不应该返回那个地址的值吗??
【问题讨论】: