#include <stdio.h>
#include <string.h>
struct Student {
int id;
char name[10];
char sex;
int grade;
};
int main() {
struct Student std;
std.id = 1;
strcpy(std.name, "Kevin");
std.sex="M";
std.grade = 2;
printf("%d %s %s %d\n", std.id, std.name, std.sex, std.grade);
}
在此代码中,在STD变量中分配性别字符时出错. 我以为‘M’只是一个字符,所以它会像普通变量一样在 struct 上起作用.
#include <stdio.h>
#include <string.h>
struct Student {
int id;
char name[10];
char sex[1];
int grade;
};
int main() {
struct Student std;
std.id = 1;
strcpy(std.name, "Kevin");
strcpy(std.sex, "M");
std.grade = 2;
printf("%d %s %s %d\n", std.id, std.name, std.sex, std.grade);
}
我修复了这样的代码,然后它就能工作了.
所以我的问题是,
- 在内存透视中,char和char [1]有什么不同?
- 为什么字符性在 struct 中不起作用?
我找了,但找不到答案.帮帮我!