2024-09-29 00:37:19
2024-09-29 08:16:24
2024-09-29 00:00:31
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
a[i][j]=0;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
为什么这样编译 就没有提示错误呢 N不还是变量么?谢谢
你是用的GCC3.2以后的版本编译的吗
按理对于输入的变量N 直接使用int a[N][N]这种写法是不被标准C++承认的
只有一个C99标准支持这种动态长度数组,而gcc支持其在C++中使用
而即使是gcc,也只能像你后面那样初始化动态长度数组
因为后一种情况,在编译时,编译器会在你定义数组和初始化的代码之间自动插入一些代码,使得你在初始化的时候,这个数组的空间已经是被分配好的了
PS:如果你想动态分配数组空间 尽量使用new关键字
2024-09-29 06:01:04