例如,之间有什么区别吗?
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种元素),所以第二种情况是有效的比第一?
这个数组声明:
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)
元素的数量是在编译时计算的,因此没有与之关联的运行时成本.
第一个声明的优点是它不需要程序员手动计算元素的数量,因此在这个意义上它是一个更有效的数组声明.
只要显式元素之间[]的数量与之间的初始化数量相同,就没有区别了{}.
关于"效率"的问题没有实际意义.数组大小在编译时确定,这意味着它对代码的效率没有影响.并且因为无论如何编译器都必须解析初始化列表,它对编译的效率没有实际影响.