wsgyj

 

C数组定义不可省略第二维及更高的维数 原因分析

C语言书中写到在定义二维数组时,可以省略第一维的坐标,如  int a[][3] = {{4,1,6},{2,3,5}};  是合法的
但是不可以省略二维或者更高维的坐标。 如  int a[3][] = {{4,1,6},{2,3,5}}; 是不合法的

这是由编译器原理限制的。 如 定义a[2][3], 在我们引用数组元素a[1][2]时 编译器的寻址方式是 a+ 1*3+2,若不指定第二维
                                                        则编译器将不知道数组的列数也就无法寻址。

posted on 2009-09-11 21:11 gyj 阅读(688) 评论(0)  编辑 收藏 引用 所属分类: C知识


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜