【发布时间】:2021-12-30 11:01:24
【问题描述】:
我正在阅读这个答案- https://stackoverflow.com/a/1644292/10352155
看完之后,我有一些疑问:
答案中说,一旦数组表达式“衰减”为指针,你所拥有的只是一个指向单个元素的指针。
这是否意味着当数组表达式被转换为指针时,需要分配一个额外的内存空间(除了已经为数组元素分配的内存空间)来存储指针表达式(就是数组的基地址)?
如果是这样,那么它与 B 语言中提到为指针表达式分配单独的内存空间有什么不同?
如果不是这样并且没有分配额外的内存,那么指针表达式如何存储基地址的值?
【问题讨论】:
-
没有更多的分配。指针保存的唯一信息是地址,编译器知道类型。 C 允许您根据需要从指针索引,但您需要确保目标内存在原始对象内。