首页 > 解决方案 > 大小为 0 的数组如何存储在内存中?

问题描述

如果我有一个只有一个元素的数组,我们可以说它与指针相同。但是一个大小为零的数组在内存中是如何表示的呢?

当我声明一个变量时会发生什么int * table[0]

标签: carrayspointersmemory

解决方案


如果我有一个只有一个元素的数组,我们可以说它与指针相同

不,我们不可以。数组和指针是不同的类型,它们在内部的表示方式也不同。无论数组大小如何,这都是正确的。现在,在某些情况下(实际上是大多数情况),数组衰减到指向它的第一个元素的指针也是正确的。

根据标准,大小数组0是非法的,但是一些主要的编译器(如 gcc)允许它们作为扩展。

阅读此问题以了解数组和指针的内部表示之间的区别:取消引用指针和访问数组元素之间的区别


推荐阅读