#include <iostream>
using namespace std;
struct student{
char name[10];
int grade;
};
int main() {
struct student s[10];
student s[0].name = "Jack";
cout<<s[0].name;
}
我想创建结构类型数据student
作为一个arraign。但是,当我这样做时,出现了一些错误,我不知道为什么。以下是错误:
1.error:重新定义&#39;&#39;不同类型:&#39;学生[0]&#39; vs&#39; struct student [10]&#39;
student s[0].name = "Jack";
^
2.note:之前的定义在这里
struct student s[10];
^
3。错误:预期&#39;;&#39;在声明结束时
student s[0].name = "Jack";
^
;
答案 0 :(得分:2)
char name[10];
:
10
字符对于名称来说太短了。char
假设名称不在ASCII或UTF-8之外,并且看起来您使用的是Unicode库。std::string
或std::wstring
- 并使用Unicode库!struct student s[10]
struct
关键字是不必要的。只需student s[10];
即可。std::vector<student>
。= {0}
将内存清零和/或定义student
构造函数。student s[0].name = "Jack";
s[0].name = "Jack"
=
(默认情况下)。请注意,您的struct的成员类型为char
,而字符串文字为const char[N]
,因此实际上您将指针(由于Array Decay)分配给char
成员。这是一个毫无意义的操作。main
未返回任何值。成功使用return EXIT_SUCCESS;
。这不是严格要求的,但我个人认为明确返回值是一种好习惯。