int a[] = {1, 2 ,3};
Run Code Online (Sandbox Code Playgroud)
我知道数组名称被转换为指针。一个经常使用的术语是它们衰减为指针。
然而对我来说, apointer是一个内存区域,它保存着另一个内存区域的地址,所以:
int *p = a;
Run Code Online (Sandbox Code Playgroud)
可以这样画:
----- -----
p ---------> a[0]. .....
----- -----
0x1 0x9
Run Code Online (Sandbox Code Playgroud)
但a它本身并不是指向另一个内存区域,它是内存区域本身。因此,当编译器将其转换为指针时,是将它(如p)保存在内存中的某处还是隐式转换?