关于数组初始化的问题

来源:6-9 多维数组

慕粉1637207462

2017-02-16 17:12

#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】,而且一直说源文件未编译,或者说我怎么做,都编译不了
写回答 关注

3回答

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

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

    慕粉1637...

    非常感谢!

    2017-03-06 11:21:00

    共 3 条回复 >

  • 墨染流年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.

    慕粉1637...

    为什么会缺东西?如果按我这种定义方法,只定义【3】和【5】,那【1】、【2】、【4】是什么?是随机值还是?

    2017-02-17 16:55:24

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题