71 结构体初始化
为什么UE4原码喜欢用->,因为.的话error或乱码,又不用strcpy
01 结构体的成员列表赋值为字符串常量时
#include <stdlib.h>
#include <stdio.h>
typedef struct persons
{
char name[21];
int age;
}persons;
void main() {
persons psn;
//psn.name = "司马元显";//error
//psn.name[21] = "司马元显";//乱码,“烫烫烫...”那种
strcpy(psn.name,"司马元显" );
psn.age = 55;
printf("%s\t", psn.name);
printf("%d\n", psn.age);
system("pause");
}
02 结构体变量和第一个成员变量的地址相同
#include <stdlib.h>
#include <stdio.h>
typedef struct persons
{
char name[21];
int age;
}persons;
void main() {
persons psn;
strcpy(psn.name,"司马元显" );
psn.age = 55;
printf("%p\n", &psn);
printf("%p\n", psn.name);
printf("%p\n", &psn.age);
system("pause");
}
03 声明结构体没内存,得初始化对象才有内存,所以初始化对象之前的赋值都是error
#include <stdlib.h>
#include <stdio.h>
typedef struct persons
{
char name[21];
int age;
}persons;
void main() {
//persons* ppsn = NULL;//声明,NULL都没有开辟内存,不能进行下面的赋值操作
persons psn;
persons * ppsn=&psn;
strcpy(ppsn->name, "桓玄");
ppsn->age=48;
printf("%s\t%d\n", ppsn->name, ppsn->age);
system("pause");
}