array [n]和array []之间的区别?

Srl*_*rle 6 c c++ arrays

例如,之间有什么区别吗?

int array[]={1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

和,

int array[5]={1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

编译器需要由自对第一种情况下,计算元件的数量,并且,可以采取一个一定的时间({...}的1234332534种元素),所以第二种情况是有效的比第一?

In *_*ico 8

这个数组声明:

int array[] = {1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

与以下内容完全相同:

int array[5] = {1, 2, 3, 4, 5}; 
Run Code Online (Sandbox Code Playgroud)

元素的数量是在编译时计算的,因此没有与之关联的运行时成本.

第一个声明的优点是它不需要程序员手动计算元素的数量,因此在这个意义上它是一个更有效的数组声明.


AnT*_*AnT 5

只要显式元素之间[]的数量与之间的初始化数量相同,就没有区别了{}.

关于"效率"的问题没有实际意义.数组大小在编译时确定,这意味着它对代码的效率没有影响.并且因为无论如何编译器都必须解析初始化列表,它对编译的效率没有实际影响.

  • 初始化元素的数量可以小于`[]`中的数量.如果有更多,这是一个错误. (2认同)