【发布时间】:2018-11-19 08:59:34
【问题描述】:
我正在寻找答案,但无处可寻。我希望你能帮助我。我编写了一个简单的应用程序,其中包括名称为 worker 和 .但是当我想更改名称的值时,我不能这样做。我不知道为什么。也许您无法帮助我,或者您知道其他方法?我的代码:
struct workers {
char name[256]="no";
int pay=-1;
};
void addOne(struct workers work[20]) {
char name[256];
int i=0;
for (i = 0; work[i].name != "no"; i++) {}
printf_s("Enter name of worker: ");
scanf_s("%s", &name);
//-----error here-----
work[i].name = name;
}
int main()
{
int i;
struct workers work[20];
for (i = 0;i < 20; i++) {
if (work[i].name != "no") {
work[i].pay = 100 * i;
}
}
for (i = 0; i < 20; i++) {
printf_s("%s\t%d\n", work[i].name, work[i].pay);
}
return 0;
}
【问题讨论】:
-
这不是有效的 C 代码。您不能在结构的定义中初始化结构成员。
-
但我没有在定义中初始化它们。我只是确定默认姓名和薪水。而在函数 addOne 我只想改变他们的价值
-
"我只是确定了默认姓名和薪水。" 是的,这是一个语法错误。你不能在 C 中做到这一点。
-
好的,但是如何添加成员?