在C语言中,如果数组是在声明时初始化的,那么维度是可选的。为什么?

在C语言中,如果数组是在声明时初始化的,那么维度是可选的。为什么?,c,C,在C语言中,如果数组是在声明时初始化的,那么维度是可选的。为什么?因为如果您告诉它创建一个包含1、2和3的数组,它可以很容易地计算出所需的大小,因为您给了它3个元素 如果您像int a[10]一样声明数组; 您正在指定有关10个元素的内存的编译器 如果你声明像int a[]={1,2,3}; 您指定的编译器只需要3个元素的内存,因为编译器可以计算出来。这很方便,所以它依赖于编译器?在某些情况下,我们可能会发现这不起作用@davidbakYou不能仅对初始值设定项使用声明。它总是一个定义。它是语言

在C语言中,如果数组是在声明时初始化的,那么维度是可选的。为什么?

因为如果您告诉它创建一个包含1、2和3的数组,它可以很容易地计算出所需的大小,因为您给了它3个元素

如果您像int a[10]一样声明数组; 您正在指定有关10个元素的内存的编译器

如果你声明像int a[]={1,2,3};
您指定的编译器只需要3个元素的内存

,因为编译器可以计算出来。这很方便,所以它依赖于编译器?在某些情况下,我们可能会发现这不起作用@davidbakYou不能仅对初始值设定项使用声明。它总是一个定义。它是语言定义的一部分,你可以依赖它。