gpt4 book ai didi

c - 错误: expected expression before

转载 作者:行者123 更新时间:2023-11-30 15:04:42 25 4
gpt4 key购买 nike

struct student{
char name[100];
int id;
char *department;
struct result{
float gpa;
char grade;
};
}W[1],R[1];
W[] = {{"Saud Farooqui",137,"Electronics",3.05,'A'},
{"Talha Farooqui",129,"Civil",3.5,"A+"}};

当我编译它时,编译器给出一个错误,错误是,

error: expected expression before ‘]’ token
W[] = {

有什么问题吗?我认为我是对的,但为什么会出现错误?

最佳答案

问题是数组不能这样分配。

尝试将类型定义与变量声明分开。

struct student
{
char name[100];
int id;
char *department;
struct the_result
{
float gpa;
char grade;
} result;
};

然后将W定义为;

struct student W[] = 
{
{"Saud Farooqui",137,"Electronics", {3.05,'A'}},
{"Talha Farooqui",129,"Civil", {3.5, 'A'}}
};

请注意,我已将第二个字符串文字从 "A+" 更改为 char 文字,因为单个 char 无法表示一个字符串(由多个字符组成)。

另请注意用于初始化嵌套 struct 的一对附加 {}

如果您想将成绩表示为字符串,请将 grade 更改为 char 数组,而不是单个 char

建议将 department 成员更改为数组。指针是不同的东西。

最后,请记住,像 "AB" 这样的字符串文字表示为 char 数组,并带有附加的 char'\0'。因此,"AB" 表示为三个 char 的数组,其值为 'A''B'、和'\0'

如果您不明白我建议的更改,您需要更仔细地阅读基础文本才能理解。

关于c - 错误: expected expression before,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40199827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com