C语言 简单 在线等,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:13:28
static int b[3]={1,,5};

int a[5]={,2,,3,5};

这样定义数组,对吗?

为什么?

这样定义是不被当前C/C++标准所支持的,也可以说是不对的。因为数组在内存中是一块连续的内存,只能通过一个首地址来索引到。这个地址就是数组中的第一个元素的地址。而后面的都是靠首地址的偏移量来索引的,所以可用a[1],此处的"1"其实是一个类型所占字节的偏移量。如果中间断了的话,{1,,3,,,3},那就找不到下一个元素了。所以为了满足线性表的这个数据存储结构,就不允许定义成{1,,3,,,4}等

不对吧
我VC2005不支持这种定义数组的格式。
实际上这样定义数组也是没有意义的。
没有程序员会这么写,除了某些变态的老师为了炫耀自己的水平而出到考试卷子上。

其实这玩意不存在对或者不对,只是 支持问题, 也许某个编译器偏偏就支持这样定义也说不定。
turbo c貌似是标准c,你遇到困惑,可以上机编译一下,然后就明白了。

实践是检验真理的唯一标准,刚编了输出的小程序,不能通过,提示定义有错误,所以说这样对TURBO C来说是非法的,或者说是不支持的。

错啦,,,在初始化数组的时候,可以只定义前面的,,但不允许不定义前面的而直接定义后面的,,,你可以将它们定义为0