c++可以定义一个空数组吗

高分请教下,c++可以定义一个空数组吗
最新回答
梨涡少年我的梦

2024-12-01 01:49:12

  c++不能定义空数组,数组是在栈上分配的;
  一个长度为0的数组称之为“空数组”,空数组是一个真正的对象,只是包含元素个数为0。
  null数组是一个空引用。
  假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对放回数组进一步处理,而如果返回空数组,则无须null引用检查。鉴于此,返回数组的方法在没有结果时通常返回空数组,而不是null,这样处理比较方便。
  空数组即下标为0的数组,如a[0]。在函数中声明空数组是没有任何意义的,当然也编译不过。而在类或
结构体
中,是可以这样声明的。
  
会笑才不是傻冒

2024-12-01 02:41:31

可以定义,前面的人说数组是在栈上分配的,是因为他是定义在主函数里面的。只要定义在主函数上面,“using namespace std;”下定义就可以定义在堆上。

#include<bits/stdc++.h>
//别问我这是什么头文件,这是c++老师教我们的万能头文件(哎呀,透露了)
using namespace std;
int a[15005][15005];//<<<<<<<<<定义在这
int main()
{
    
    return 0;
}
//额,我定义的是二维数组。
未央_离殇

2024-12-01 04:49:03

应该是说长度为0的数组吧准确的说,是不可以的但是某些c++编译器允许定义 int a[]或int a[0],这其实是c里面的方式,gcc把这个特性扩展到了c++里面。定义这种貌似长度为0的数组,其实是为了实现变长数组。不知道是不是想问这个。
菊花碎大石

2024-12-01 03:13:12

显然不能定义空数组,数组是在栈上分配的,那么就一个要有一个首地址让EBP寄存器来索引他的位置,要是空的数组,CPU又怎么会知道有这么一个数组存在呢?