假设我有这样的事情:
#include<stdio.h>
int main()
{
int arr[2][2][2]={1,2,3,4,5,6,7,8};
printf("%d\n",sizeof(int));
printf("%d\n",&arr[0][1]);
printf("%d\n",&arr[0][1]+1);
printf("%d\n",arr[0][1]);
printf("%d\n",arr[0][1]+1);
printf("%d\n",arr[0]);
printf("%d\n",arr[0]+1);
printf("%d\n",&arr[0]);
printf("%d\n",&arr[0]+1);
printf("%d\n",&arr);
printf("%d\n",&arr+1);
printf("%d\n",arr);
printf("%d\n",arr+1);
return 0;
}
现在,当我们执行它时,printf("%d\n",arr)
,printf("%d",arr+1)
和printf("%d\n",&arr[0])
,printf("%d\n",&arr[0]+1)
的结果相同。
有人可以用简单的外行语言解释使用&amp;操作员和不使用时。我的意思是我们只能用一种方式,另一种方式需要什么?
What's the difference between array and &array?
考虑到这个链接,有人说:
“&amp;数组的类型是int()[16](指向16个整数数组的指针)。数组的类型,当被放弃时,是int (一个指针)到一个整数)。“
你如何准确地确定&amp;数组和数组的类型,以及“什么时候离开衰变”的含义是什么?