参见英文答案 >
how does array[100] = {0} set the entire array to 0?4个
我想知道int array [10] = {0}是如何工作的?
我想知道int array [10] = {0}是如何工作的?
这样整个阵列都会一路走来吗?
for(int i=0;i<10;i++) array[i]=0;
还是更有效率?
解决方法
取决于变量的范围.
>全局范围 – 在调用main函数之前,数组将放在.bss段中并归零.它更快吗?这肯定是不同的,因为在主要开始之前进行归零
>本地范围 – 由于这些内部例程针对特定硬件进行了优化,因此{0}初始化将更快地进行IMO.我用gcc和amp测试了VS和它更快 – 但当然不能保证你的编译器会以同样的方式做到这一点. https://godbolt.org/g/JdTPHJ