新手请教一个简单问题
我在VC++开发系统里面在头文件里面定义一个二维数组,想把他初始化
如:
int aa[3][4]={{1,2,3,4},{1,2},{5,4,3,2}};
在编译的时候编译系统却报错!!!
怎么回事呢?!!!
没有完全初始化,系统会默认为0
如直接输出上面的数组则为:1 2 3 4
1 2 0 0
5 4 3 2
我也认为不应该报错啊
但系统就是提示错误
系统提示错误如下:
syntax error : '{'
unexpected token(s) preceding '{'; skipping apparent function body
怎么回事呢?
还请高手赐教!!!
如果我在头文件里,只是定义,而不进行初始化,就没有问题
如 int aa[3][4];
编译能正常通过
但这样我就必须在.cpp文件里面对数组各个元素进行赋值初始化,这样也未免太麻烦了吧,要是遇到一个如20×20大数组,做这样的赋值初始化都会累掉半条命啊!!!
还望各位xdjm赐教!!!
你估计是其他的地方大括号出现了问题,你检查一下是不是不小心写错了,至于7楼说的,c++不允许默认? 你老师这样教你的么?
那你试下下面这个代码?看输出的是什么?
#include <iostream>
using namespace std;
int main()
{
int num[2]={0};
cout<<num[0]<<endl<<num[1];
system("pause");
return 0;
}
我想至于9楼提出的可能是“其他地方的大括号出现问题”,我想其他地方的大括号应该没有问题,因为正如我在5楼说的那样,只是定义而不做初始化,编译能正常通过,我想这足以证明其他地方的大括号没有问题拉!!