将数组的所有元素初始化为0

Adi*_*lli 3 c arrays

在C语言中,我正在创建一个数组(2维),其中所有元素都是零

我这样做的方式如下:

int a[5][5],i,j;  //a is the required array
for(i=0;i<5;i++)
   for(j=0;j<5;j++)
       a[i][j]=0;
Run Code Online (Sandbox Code Playgroud)

我也知道其他一些方式:

int a[5][5]={0};
Run Code Online (Sandbox Code Playgroud)

两者都相同或有什么区别?

什么应该是首选?

谢谢 !

Fid*_*its 6

第二种方法更简洁.还要考虑:

memset(&a, 0, sizeof(a));
Run Code Online (Sandbox Code Playgroud)


Ser*_* L. 6

两种方式都有相同的效果,但第二种方法通常会更快,因为它允许编译器优化和矢量化该代码.

另一种被广泛接受的方式(也是可以优化的)是

memset(a, 0, sizeof(a));
Run Code Online (Sandbox Code Playgroud)

  • 别忘了带一个(&a)的地址. (2认同)
  • @SergeyL; 不,这不是真的.虽然它们的价值相同但含义不同. (2认同)