问答详情
源自:6-9 多维数组

关于数组初始化的问题

#include

main() { int scores7[10] = {[3] = 10,[5] = 15}; printf("scores7[3] = %i\n",scores7[3]); printf("scores7[4] = %i\n",scores7[5]); } 按道理上说利用建立索引的方法进行初始化了scores7【3】,和【5】,应该就把整个数组初始化了吧,为什么不能输出【4】,而且一直说源文件未编译,或者说我怎么做,都编译不了

提问者:慕粉1637207462 2017-02-16 17:12

个回答

  • 墨染流年1008
    2017-02-19 20:45:19
    已采纳

    实际数组使用时都要memset清空,以防这块内存之前使用过,有其他数据。没有给初始值确实可能时随机的。但是你已经初始了几个值,其他没有的就会初始为0,全局和静态数组就默认初始为0

  • 墨染流年1008
    2017-02-19 20:35:24

    没有给个初值,一般不都是零吗

  • 墨染流年1008
    2017-02-17 16:25:56

    #include <stdio.h>

    int main()
    {

        int scores7[10] = {[3] = 10,[5] = 15};
        
        printf("scores7[3] = %i\n",scores7[3]);
        printf("scores7[5] = %i\n",scores7[5]);

        printf("scores7[4] = %i\n",scores7[4]);

        return 0;
    }

    scores7[3] = 10
    scores7[5] = 15
    scores7[4] = 0

    这样?是不是缺东西,没有初始化的,初始化为0.