📜  未解决的编译错误 int test[5] = {1, 2, 3, 4, 5} (1)

📅  最后修改于: 2023-12-03 15:26:32.324000             🧑  作者: Mango

未解决的编译错误 int test[5] = {1, 2, 3, 4, 5}

这个编译错误看上去非常简单,实际上却可能涵盖多种问题,因此需要一些分析来找到解决方法。

错误信息

首先看一下错误信息:

error: expected ',' or ';' before '}' token

这条报错信息表示在数组初始化的时候,"{" 和 "}" 之间缺少逗号。具体地说,我们在 test 数组中提供了 5 个元素的初始化值,在这里确实应该有逗号,但是编译器却没有找到。

确认数组大小

编译器没有找到逗号很可能是因为我们定义的数组大小不正确,试着检查一下数组的大小:

int test[5] = {1, 2, 3, 4, 5};

这说明 test 数组应该包含 5 个整数。再仔细看一下错误信息,它没有显示出我们定义数组大小的部分,只是说在最后一个元素("5")前面需要逗号。

检查分号

此外,报错信息也提到分号,意味着你可能需要检查一下代码中的分号,例如代码前面的语句是否正确结束。

#include <iostream>

int main(){
    int test[5] = {1, 2, 3, 4, 5};
    for(int i=0; i<5; i++){
        std::cout << test[i] << " ";
    }
    return 0;
}

最后,如果你已经检查了数组的初始化和分号的位置,并且仍然无法解决问题,则建议检查一下所使用的编译器是否支持 C++11 的初始化列表语法。如果不支持,您可以尝试使用其他方法进行初始化。

总之,这个简单的错误可能会导致多个问题,因此我们需要仔细检查并确认它。

参考代码

#include <iostream>

int main(){
    int test[5] = {1, 2, 3, 4, 5};
    for(int i=0; i<5; i++){
        std::cout << test[i] << " ";
    }
    return 0;
}