• c 有意思的数组初始化


    c 有意思的数组初始化

    1. #include <stdio.h>
    2. int main()
    3. {
    4.     int i = 0;
    5.     char a[1024];
    6.     char a0[10] = {};
    7.     char a1[10] = {1};
    8.     char a2[10] = {1,};
    9.     char a3[10] = {1,1};
    10.     for(i=0; i< 1024; i++){
    11.         printf("%u",a[i]);
    12.         a[i] = (i*i)%11;
    13.     }
    14.     printf(" ------ ");
    15.     for(i=0; i< 10; i++){
    16.         printf("%u | %u | %u %u ", a0[i], a1[i],a2[i], a3[i]);
    17.     }
    18.     printf(" ");
    19. }

    结果

    1. 0000000042949672804
    2. ------
    3. 0 | 1 | 1 1
    4. 0 | 0 | 0 1
    5. 0 | 0 | 0 0
    6. 0 | 0 | 0 0
    7. 0 | 0 | 0 0
    8. 0 | 0 | 0 0
    9. 0 | 0 | 0 0
    10. 0 | 0 | 0 0
    11. 0 | 0 | 0 0
    12. 0 | 0 | 0 0

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

    1 ,a[10]; 只是做个标号,并不分配内存,到a[0]=(1*1)%11时分配内存,只不过是在栈的数据段找个地址赋给a,不做初始化;
    2,a?,都做了初始化0,并且在a123都对指定的位置赋了给定的值。
    3,亮点是a0={}的写法,我第一次尝试到,估计这根编译器有关。

  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    手动版 轮播图
    Echarts tooltip 自定义formatter设置字体颜色
    CSS3中 translate、transform 和 translation 的区别和联系,及开发问题解决
    background 属性及遇到的问题
  • 原文地址:https://www.cnblogs.com/timssd/p/4781167.html
Copyright © 2020-2023  润新知