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

这就是陷阱。
C中定义一维数组时必须指定长度。
初始化二维数组时,行数可以省略,但列数不能省略。

C语言中,数组相关知识点介绍

数组定义:int arr[5 ];长度5 ,类型int。
初始化:int arr[5 ] = {1 ,2 ,3 ,4 ,5 };或 int arr[5 ] = {1 ,2 };其余的自动变成0。
访问:arr[2 ] = 1 0;修改第三个元素。
超出范围:arr[1 0] = 1 00;这是一个陷阱。
内存:int[5 ]占用2 0个字节,5 4 遍历: for(i=0;i<5 xss=clean> 动态数组:使用 malloc,如 int p = malloc(5 sizeof(int)); 不要这样做。
如果使用数组作为栈,超出范围也不会报错。
注意:请在访问前检查下标。

c语言数组初始化的问题

说起这个数组定义,真是编程中的老朋友了。
我以前在培训班教学生的时候就强调过这一点。

我记得有一次,一位初学者无法弄清楚数组定义的细节。
然后我给他举了一个小例子并解释了一下。
我说,“看,括号里应该有一个常数。
就像你去商店买 1 0 个苹果,这个数字决定了你想买多少个苹果。

这就是我当时所说的:“让我们使用 N 5 的定义。
写入 inta[N] 就告诉编译器数组 a 有 5 个元素,从 a[0] 到 a[4 ]。
注意,数组的类型就是元素的类型inta[1 0] 表示它是一个整数数组。

我告诉他:“就像你买苹果时,你只能买 1 0 个苹果。
你不能说:“我买 5 个苹果。
还有更多。
”对于数组也是如此,大小一旦确定,就不能随意改变。

然后我举了个例子说:“比如flota[1 0]。
”表示它是一个由 1 0 个浮点数组成的数组。
现在想一想,有时候这些基本的东西真的需要一点一点地学习,就像给苹果加数量一样,一步一步来。