新微赢技术网
标题:
新手请教一个简单问题
[打印本页]
作者:
边走边看
时间:
2009-11-3 02:00
标题:
新手请教一个简单问题
我在VC++开发系统里面
在头文件里面定义一个二维数组,想把他初始化
如:
int aa[3][4]={{1,2,3,4},{1,2},{5,4,3,2}};
在编译的时候编译系统却报错!!!
怎么回事呢?!!!
作者:
唏唏鉿鉿HJP
时间:
2009-11-3 02:00
没有完全初始化,系统会默认为0
如直接输出上面的数组则为:1 2 3 4
1 2 0 0
5 4 3 2
作者:
冷冷DI草
时间:
2009-11-3 02:00
那也不应该报错啊,他问你为什么抱错
作者:
('葒諺禍氺
时间:
2009-11-3 02:00
我也认为不应该报错啊
但系统就是提示错误
系统提示错误如下:
syntax error : '{'
unexpected token(s) preceding '{'; skipping apparent function body
怎么回事呢?
还请高手赐教!!!
作者:
bgag
时间:
2009-11-3 02:00
如果我在头文件里,只是定义,而不进行初始化,就没有问题
如 int aa[3][4];
编译能正常通过
但这样我就必须在.cpp文件里面对数组各个元素进行赋值初始化,这样也未免太麻烦了吧,要是遇到一个如20×20大数组,做这样的赋值初始化都会累掉半条命啊!!!
还望各位xdjm赐教!!!
作者:
ˇ风逍遥ˇ
时间:
2009-11-3 02:00
你看看这个行否
#include<iostream.h>
void main()
{
int a[5][5];
cout<<"input the numbers:"<<endl;
for(int i=0;i<=4;i++)
{
for(int j=0;j<=4;j++)
{
a[i][j]=i*5+j;
}
}
for(int m=0;m<=4;m++)
{
for(int n=0;n<=4;n++)
{
cout<<a[m][n];
}
cout<<endl;
}
}
作者:
飞.逝﹏..
时间:
2009-11-3 02:00
c和c++的赋值是从左向右的,是不允许中间有空值的,也不允许默认值
作者:
泪在爱上雕刻
时间:
2009-11-3 02:00
i*5+j;是何用意
作者:
鈊賥wo埋單
时间:
2009-11-3 02:01
你估计是其他的地方大括号出现了问题,你检查一下是不是不小心写错了,至于7楼说的,c++不允许默认? 你老师这样教你的么?
那你试下下面这个代码?看输出的是什么?
#include <iostream>
using namespace std;
int main()
{
int num[2]={0};
cout<<num[0]<<endl<<num[1];
system("pause");
return 0;
}
作者:
我和老公在
时间:
2009-11-3 02:01
我想至于9楼提出的可能是“其他地方的大括号出现问题”,我想其他地方的大括号应该没有问题,因为正如我在5楼说的那样,只是定义而不做初始化,编译能正常通过,我想这足以证明其他地方的大括号没有问题拉!!
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2