C/C++:int数组[10] = {0}如何工作?

Rob*_*ert 7 c c++ arrays initialization

我想知道它是如何int array[10]={0}工作的?

这样整个阵列都会一路走来吗?

for(int i=0;i<10;i++) array[i]=0;
Run Code Online (Sandbox Code Playgroud)

还是更有效率?

P__*_*J__ 2

取决于你的变量的范围。

  1. 全局范围 -array将放置在 .bss 段中并在调用函数之前清零main。更快吗?main这绝对是不同的,因为归零是在开始之前进行的
  2. 本地范围 -{0}在我看来,初始化将更快,因为这些内部例程针对特定硬件进行了很好的优化。我已经使用 gcc 和 VS 进行了测试,它更快 - 但当然不能保证您的编译器会以相同的方式执行此操作。https://godbolt.org/g/JdTPHJ


归档时间:

查看次数:

1944 次

最近记录:

8 年,4 月 前