以下能正确定义一维数组的选项是()。

哈哈,你问这个了。
我学C的时候也有这个头疼的问题。

看,选项B是 char a[] = 0, 1 , 2 , 3 , 4 , 5 ;这行C语言代码初始化了一个字符数组,其元素是0到5 的数字。
这里,0到5 的数字会自动转换为对应的ASCII字符,所以a[0]是“0”,a[1 ]是“1 ”,依此类推。
这种表示法在C中是合法的。

选项A,int a[5 ] = 0, 1 , 2 , 3 , 4 , 5 ;,这是不正确的。
如果定义一个由 5 个整数组成的数组,然后指定 6 个数字,编译器将报告“初始化数据过多”错误。

选项C,char a[] = 'A', 'B', 'C';,这个就更错误了。
在C语言中,单个字符需要单引号,但这里逗号分隔三个字符文字而不是单个字符。
对于某些较旧的编译器,这行代码将无法正确编译或导致未定义的行为。

选项D,int a[5 ] = "01 2 3 ";,这个也行不通。
'01 2 3 ' 是一个字符串文字,通常占用 6 个字节(5 个字符加上结尾的 '\0')连续内存。
我正在尝试将 6 字节字符串复制到只能容纳 5 个整数的数组中。
这超过了极限,是极其危险的。
当我写这篇文章时,我遇到了一些陷阱。
数据很乱,所以花了很多时间调试。

也就是说,只有B才能正确定义一维数组。
那年夏天,我在宿舍的电脑屏幕前,不明白为什么A和D是错的。
看完书我终于明白了。
实在是太麻烦了。

你学会了吗?别像我当年那样在电脑前揪着头发。

c语言定义数组可以不指定长度吗 c语言数组定义列数没行数可以么

对于一维数组,长度必须明确,不能神秘。

对于二维数组,列数不能少,行数可以省略。
初始值将自动计算。

初始化后保存行数,初始值不足,混乱。

内存是按照明确的顺序存储的,先按行排列,再按列排列。

数组是什么意思 最好详细点!

数组是固定大小的连续内存块。

一维1 0个整数,使用for循环读取数据。
时间O(1 0)。

二维,1 0 行和 5 列,每个电路互连。
5 0 个整数的空间。

下标从1 开始,不能超过1 0或5 例如,a[1 1 ]将为假。