标题:为什么这样初始化二维整形数组不对?
只看楼主
王璐
Rank: 2
等 级:论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
结帖率:93.1%
已结贴  问题点数:5 回复次数:9 
为什么这样初始化二维整形数组不对?
int a[][3]={{1,0,1},{},{1,1}}?为什么不对?
搜索更多相关主题的帖子: 整形 
2010-09-16 18:56
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
得分:0 
没有为什么, 语法如此:
int a[][3]={{1,0,1},{0,0,0},{1,1,0}};
2010-09-16 19:05
王璐
Rank: 2
等 级:论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
得分:0 
回复 2楼 makebest
0元素不是可以省略的吗?
2010-09-16 19:12
自由战士89
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:387
注 册:2010-9-2
得分:5 

可以这样int a[][3]={{1,0,1},{0},{1,1}}
2010-09-16 19:22
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:0 
回复 3楼 王璐
系统来说,它不对一维数组进行合法的 检查 ,应该对,我记得书中有提,要很书面的解答你我 做不到,自己去 看书 吧!!!!!!!!老谭的 书有





[ 本帖最后由 A13433758072 于 2010-9-17 12:45 编辑 ]

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-16 23:25
王璐
Rank: 2
等 级:论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
得分:0 
回复 5楼 A13433758072
书上有写这样可以,但是练习册中却说不能。。。
2010-09-16 23:46
自由战士89
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:387
注 册:2010-9-2
得分:0 
咱可能用的是一样的书,我书上也是这么说的,那本书我已经发现至少6个地方错误了。有的地方误导很大。
2010-09-17 12:41
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:0 
网上找的


二维数组的初始化
二维数组及多维数组的初始化和一维数组类似,只有静态存储数组和外部存储数组,www. 才能在编译阶段初始化。
初始化形式:
存储类别类型数组名[下标1][下标2]={常量l,常量2,…,常量n);
例如:
static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
a[O][O]=1,aEO][1]=2,a[O][2]=3,a[O][3]=4,
a[1][O]=5,a[1][1]=6,a[1][2]=7,a[1][3]=8,
a[2][O]=9,a[2][1]=10,a[2][2]=11,a[2][3]=12

(1)二维数组的初始化可以分行进行。例如,上面的a数组初始化还可以表示为:
static int a[3][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12));
而定义4行3列的b数组可以表示为:
static int b[4][3]={{1,2,3),{4,5,6},{7,8,9},{10,11,12});
可以只对数组中部分元素初始化。例如:
a[0][o]=1,a[o][1]=2,a[1][o]=5,a[2][o]=9,其它分量初值取默认值,为o。
(3)如果对二维数组中全部元素初始化,则定义数组时第一维的长度可以省略,但第二维的长度不能省略。例如:
static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12);
可以写成
static int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
但不能写成
static int a[][]={1,2,3,4,5,6,7,8,9,10,11,12);
因为两个维数都省略时,可以理解为1*12、12*1、3*4、4*3、2*6、6*2等多种形式,会发生混淆,故只能省略第一个维数。
(4)如果对二维数组按行进行初始化,则定义数组时第一维的长度也可以省略。例如:
static int a[][4]={{1,2},{5},{9});[
Page]
对于二维数组与多维数组作函数参数跟一维数组作函数参数类同处理,但对形参数组,只有第一维的大小可以省略,第二维及其它高维的大小均不能省略。
下面举几个例子来认识二维数组的应用,请读者特别注意二维数组的整体操作,包括输入输出如何转化成对分量来进行。

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-17 12:46
青衣修罗
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:129
注 册:2010-9-16
得分:0 
这个是可以的

程序就是:任何有目的的、预想好的动作序列。
2010-09-17 15:01
Invariably
Rank: 2
等 级:论坛游民
帖 子:54
专家分:46
注 册:2010-9-18
得分:0 
这个数组每行有三列,但是给第二行和第三行赋值的时候数值不够。再者C允许对部分元素赋值,比如a[0][1]=1,但是没有这样的语法规则!
2010-09-18 14:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320618-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.487547 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved