您的位置:首页 > 其它

c 有意思的数组初始化

2015-09-04 12:34 316 查看
c 有意思的数组初始化

#include <stdio.h>

int main()

{

int i = 0;

char a[1024];

char a0[10] = {};

char a1[10] = {1};

char a2[10] = {1,};

char a3[10] = {1,1};

for(i=0; i< 1024; i++){

printf("%u",a[i]);

a[i] = (i*i)%11;

}

printf("\n------\n");

for(i=0; i< 10; i++){

printf("%u | %u | %u %u\n", a0[i], a1[i],a2[i], a3[i]);

}

printf("\n");

}

结果

0000000042949672804

------

0 | 1 | 1 1

0 | 0 | 0 1

0 | 0 | 0 0

0 | 0 | 0 0

0 | 0 | 0 0

0 | 0 | 0 0

0 | 0 | 0 0

0 | 0 | 0 0

0 | 0 | 0 0

0 | 0 | 0 0

运行第一次和这个可能不一样,从第二次以后就一样了。

1 ,a[10]; 只是做个标号,并不分配内存,到a[0]=(1*1)%11时分配内存,只不过是在栈的数据段找个地址赋给a,不做初始化;
2,a?,都做了初始化0,并且在a123都对指定的位置赋了给定的值。
3,亮点是a0={}的写法,我第一次尝试到,估计这根编译器有关。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: