1. 数组初始化时省略大小:
- 可以省略:如果在定义数组时直接对其进行初始化,你可以省略数组大小,编译器会根据初始化元素的数量自动确定数组的大小。
示例:
int numbers[] = {1, 2, 3, 4, 5}; // 数组大小为 5
在这个例子中,numbers
数组的大小会被自动确定为 5
,因为初始化列表中有 5
个元素。
2. 不初始化数组时省略大小:
- 不可以省略:如果你在定义数组时没有立即对其进行初始化,你必须明确指定数组的大小,否则编译器无法确定该数组需要分配多大的内存。
示例:
int numbers[5]; // 必须指定大小
在这个例子中,数组 numbers
大小被明确指定为 5
。
3. 在函数参数中使用数组:
- 可以省略:当数组作为函数的参数时,你可以省略数组的大小,因为在C语言中,数组作为函数参数时实际上是作为指针传递的。
示例:
void printArray(int arr[]) {
// 在函数内部,可以通过指针的方式访问数组元素
}
在这个例子中,数组 arr
的大小没有在函数参数中指定。
总结:
- 定义并初始化:你可以省略数组大小,编译器会根据初始化列表中的元素个数自动确定数组大小。
- 只定义不初始化:你必须指定数组大小。
- 函数参数:在函数参数中可以省略数组大小,因为数组作为指针传递。