此方法不行
#include<stdio.h>
#include<windows.h>
#include<string.h> // 不要忘了
struct student {
int number;
char name[256];
char sex[3];
int age;
int grade;
}; // 声明
int main() {
struct student alan; // 定义
alan.number = 10;
alan.name = "Alan"; // 此处报错,长度不同char[5] 和 char[256]
// strcpy(alan.name, "Alan"); // 需要头文件#include<string.h>
strcpy(alan.sex, "男");
alan.age = 16;
alan.grade = 12;
printf("study number:%d\nname:%s\nsex:%s\nage:%d\ngrade:%d",
alan.number, alan.name, alan.sex, alan.age, alan.grade);
Sleep(10000);
return 0;
}
// 此处报错,长度不同char[5] 和 char[256]
include<string.h>
strcpy(alan.name, "Alan");此法可行
(常数是恒定不变的,一切常数、字符和字符串都是右值),没有存储结果的空间,也就不能赋值;