C语言中,对于数组的赋值,一般有以下几种方式:

 
  
  1. int a[3][2] = {0,1,2,3,4,5}; 
  2. int b[3][2] = {{0,1},{2,3},{4,5}}; 
  3. int c[3][2] = {(0,1),(2,3),(4,5)}; 

 其中数组a和数组b的赋值方式很容易理解,但对于数组c的赋值方式,容易迷惑人,写个简单的程序验证一下:

 
  
  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3.  
  4. int main() 
  5.     int a[3][2] = {0,1,2,3,4,5}; 
  6.     int b[3][2] = {{0,1},{2,3},{4,5}}; 
  7.     int c[3][2] = {(0,1),(2,3),(4,5)}; 
  8.      
  9.     int i = 0; 
  10.     int j = 0; 
  11.     for(i = 0;i < 3;i++) 
  12.      for(j = 0;j < 2;j++) 
  13.      { 
  14.        printf("a[%d][%d] = %d ",i,j,a[i][j]); 
  15.        printf("b[%d][%d] = %d ",i,j,b[i][j]); 
  16.        printf("c[%d][%d] = %d ",i,j,c[i][j]); 
  17.      } 
  18.     system("pause"); 
  19.     return 0; 

  运行结果:

  

 从运行结果来看,数组a和数组b的输出是一致的,所以两种赋值方式的效果是一样的,对于数组c,只有前三个元素有值,其他的均是0,而且前三个值分别为1、3、5,这种赋值方式,是以括号为单元,每个单元均以后面的数值赋给相应的数组元素。数组其他未赋值的元素,以0填充