📅  最后修改于: 2023-12-03 15:26:32.324000             🧑  作者: Mango
这个编译错误看上去非常简单,实际上却可能涵盖多种问题,因此需要一些分析来找到解决方法。
首先看一下错误信息:
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;
}