问答详情
源自:6-1 数组初体验

网页提示正确但是输出却没结果?

#include <stdio.h>
int main()
{
    //第一种形式
    int arrFirst[3] = {1,2,3};
    //第二种形式
    int arrSecond[] = {1,2,3};
    //第三种形式
    int arrThird[3];
    //给arrThird数组每个元素初始化
    int arrThird[0] = 1;
    int arrThird[1] = 2;
    int arrThird[2] = 3;
    //输出第一个数组中的第二个元素
    printf("%d\n", arrFirst[1]);
    //输出第二个数组中的第二个元素
    printf("%d\n", arrSecond[1]);
    //输出第三个数组中的第二个元素
    printf("%d\n", arrThird[1]);
    return 0;
}

这是我的代码,然后输出是这样的:

hello.c: In function 'main':
hello.c:11:9: error: conflicting types for 'arrThird'
    int arrThird[0] = 1;
        ^
hello.c:9:9: note: previous declaration of 'arrThird' was here
    int arrThird[3];
        ^
hello.c:11:5: error: invalid initializer
    int arrThird[0] = 1;
    ^
hello.c:12:9: error: conflicting types for 'arrThird'
    int arrThird[1] = 2;
        ^
hello.c:11:9: note: previous definition of 'arrThird' was here
    int arrThird[0] = 1;
        ^
hello.c:12:5: error: invalid initializer
    int arrThird[1] = 2;
    ^
hello.c:13:9: error: conflicting types for 'arrThird'
    int arrThird[2] = 3;
        ^
hello.c:12:9: note: previous definition of 'arrThird' was here
    int arrThird[1] = 2;
        ^
hello.c:13:5: error: invalid initializer
    int arrThird[2] = 3;
    ^

这是怎么回事?是我的代码整个都错了吗

提问者:老板来两斤肉 2017-08-21 01:24

个回答

  • 划水人
    2017-12-30 21:04:48

    arrThird数组,初始化不用定义类型,去掉就好。int arrThird[3]; arrThird[0] = 1;arrThird[1] = 2;arrThird[2] = 3;  前边的int都去掉 。因为你已经定义了int类型的数组,数组里面的类型就都是int类型,不用重新定义。


  • 可爱的河马
    2017-08-21 20:34:01

    在线的运行结果都不是很准确,还是建议你下一个VS,是免费的