相关疑难解决方法(0)

指向指针衰减的数组是否更改为指针对象?

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)保存在内存中的某处还是隐式转换?

c memory arrays pointers language-lawyer

13
推荐指数
2
解决办法
309
查看次数

标签 统计

arrays ×1

c ×1

language-lawyer ×1

memory ×1

pointers ×1