struct声明语法错误

时间:2010-08-01 19:10:30

标签: c++ syntax-error

我有以下代码:

#include <iostream>
using namespace std;
struct  stud{

    int roll;
    char name[10];
    double marks;
    }
struct stud stud1={1,"ABC",99.9};
struct stud stud2={2,"xyz",80.0};
int main(){

    cout<<stud1.marks<<"\n"<<endl;
    cout<<stud1.name<<"\n";
    cout<<stud1.roll<<"\n";


     return 0;
}

但有错误:

1>------ Build started: Project: array_structures1, Configuration: Debug Win32 ------
1>Build started 8/1/2010 9:26:47 PM.
1>InitializeBuildStatus:
1>  Touching "Debug\array_structures1.unsuccessfulbuild".
1>ClCompile:
1>  array_structures.cpp
1>c:\users\david\documents\visual studio 2010\projects\array_structures1\array_structures1\array_structures.cpp(9): error C2236: unexpected 'struct' 'stud'. Did you forget a ';'?
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.84
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

请帮忙。我该如何解决这些错误?

4 个答案:

答案 0 :(得分:10)

请阅读错误消息:

  

错误C2236:意外的“struct”'stud'。你忘记了';'吗?

您在struct stud声明的末尾缺少分号。

答案 1 :(得分:3)

我不懂C ++,但也许:

#include <iostream>
using namespace std;
struct  stud{

    int roll;
    char name[10];
    double marks;
    }; // notice the semicolon
struct stud stud1={1,"ABC",99.9};
struct stud stud2={2,"xyz",80.0};
int main(){

    cout<<stud1.marks<<"\n"<<endl;
    cout<<stud1.name<<"\n";
    cout<<stud1.roll<<"\n";


     return 0;
}

答案 2 :(得分:1)

“你忘记了';'?”说的一切;

声明结构后,必须输入“;”。 你也可以这样做:

struct struct_name {
 struct_variables; } new_str;

这将创建结构并创建该结构类型的新变量。

所以,你可以很容易地做到这一点:

struct  stud{

    int roll;
    char name[10];
    double marks;
    } stud1={1,"ABC",99.9}, stud2={2,"xyz",80.0};

而且,在创建结构之后,要声明该结构类型的变量,您只需要编写

<小时/> “stud stud1”代替“struct stud stud1”

答案 3 :(得分:0)

您的代码在g ++下完美编译。

但你可以试试这个:

struct stud {

    int roll;
    char name[10];
    double marks;
};