C语言中,对于数组的赋值,一般有以下几种方式:
- int a[3][2] = {0,1,2,3,4,5};
- int b[3][2] = {{0,1},{2,3},{4,5}};
- int c[3][2] = {(0,1),(2,3),(4,5)};
其中数组a和数组b的赋值方式很容易理解,但对于数组c的赋值方式,容易迷惑人,写个简单的程序验证一下:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a[3][2] = {0,1,2,3,4,5};
- int b[3][2] = {{0,1},{2,3},{4,5}};
- int c[3][2] = {(0,1),(2,3),(4,5)};
- int i = 0;
- int j = 0;
- for(i = 0;i < 3;i++)
- for(j = 0;j < 2;j++)
- {
- printf("a[%d][%d] = %d ",i,j,a[i][j]);
- printf("b[%d][%d] = %d ",i,j,b[i][j]);
- printf("c[%d][%d] = %d ",i,j,c[i][j]);
- }
- system("pause");
- return 0;
- }
运行结果:
从运行结果来看,数组a和数组b的输出是一致的,所以两种赋值方式的效果是一样的,对于数组c,只有前三个元素有值,其他的均是0,而且前三个值分别为1、3、5,这种赋值方式,是以括号为单元,每个单元均以后面的数值赋给相应的数组元素。数组其他未赋值的元素,以0填充
转载于:https://blog.51cto.com/zoufuxing/699911