设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1509|回复: 9
打印 上一主题 下一主题

新手请教一个简单问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 02:00:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在VC++开发系统里面
在头文件里面定义一个二维数组,想把他初始化
如:
int aa[3][4]={{1,2,3,4},{1,2},{5,4,3,2}};
在编译的时候编译系统却报错!!!
怎么回事呢?!!!
2#
发表于 2009-11-3 02:00:45 | 只看该作者
没有完全初始化,系统会默认为0
如直接输出上面的数组则为:1 2 3 4
1 2 0 0
5 4 3 2
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 02:00:46 | 只看该作者
那也不应该报错啊,他问你为什么抱错
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 02:00:48 | 只看该作者
我也认为不应该报错啊
但系统就是提示错误

系统提示错误如下:
syntax error : '{'
unexpected token(s) preceding '{'; skipping apparent function body

怎么回事呢?
还请高手赐教!!!
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 02:00:49 | 只看该作者
如果我在头文件里,只是定义,而不进行初始化,就没有问题

如 int aa[3][4];

编译能正常通过

但这样我就必须在.cpp文件里面对数组各个元素进行赋值初始化,这样也未免太麻烦了吧,要是遇到一个如20×20大数组,做这样的赋值初始化都会累掉半条命啊!!!

还望各位xdjm赐教!!!
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 02:00:50 | 只看该作者
你看看这个行否
#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;
}
}
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 02:00:52 | 只看该作者
c和c++的赋值是从左向右的,是不允许中间有空值的,也不允许默认值
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 02:00:58 | 只看该作者
i*5+j;是何用意
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 02:01:02 | 只看该作者
你估计是其他的地方大括号出现了问题,你检查一下是不是不小心写错了,至于7楼说的,c++不允许默认? 你老师这样教你的么?
那你试下下面这个代码?看输出的是什么?
#include <iostream>
using namespace std;
int main()
{
int num[2]={0};
cout<<num[0]<<endl<<num[1];
system("pause");
return 0;
}
回复 支持 反对

使用道具 举报

10#
发表于 2009-11-3 02:01:03 | 只看该作者
我想至于9楼提出的可能是“其他地方的大括号出现问题”,我想其他地方的大括号应该没有问题,因为正如我在5楼说的那样,只是定义而不做初始化,编译能正常通过,我想这足以证明其他地方的大括号没有问题拉!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 05:56 , Processed in 0.111945 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表