#include <stdio.h>
#include <string.h>
#include <string.h>
struct Student
{
int age;
char name[20];
int id;
}; // 这里的 " ; " 不可遗漏
{
int age;
char name[20];
int id;
}; // 这里的 " ; " 不可遗漏
int main()
{
struct Student s1;
s1.age = 20;
s1.id = 0;
strcpy(s1.name, "zhang"); // 这里必须用字符换处理函数strcpy来将"zhang"赋予s1.name
printf("%d %s %d\n", s1.age, s1.name, s1.id);
struct Student s2 = {21, "li", 1}; // 注意定义的顺序要和结构体顺序相同
printf("%d %s %d\n", s2.age, s2.name, s2.id);
{
struct Student s1;
s1.age = 20;
s1.id = 0;
strcpy(s1.name, "zhang"); // 这里必须用字符换处理函数strcpy来将"zhang"赋予s1.name
printf("%d %s %d\n", s1.age, s1.name, s1.id);
struct Student s2 = {21, "li", 1}; // 注意定义的顺序要和结构体顺序相同
printf("%d %s %d\n", s2.age, s2.name, s2.id);
struct Student *ps1 = &s1; // 定义结构体指针
printf("%d %s %d\n", (*ps1).age, (*ps1).name, (*ps1).id);
printf("%d %s %d\n", ps1->age, ps1->name, ps1->id); // 该行与上一行效果相同即 ps1->age和(*ps1).age效果相同
printf("%d %s %d\n", (*ps1).age, (*ps1).name, (*ps1).id);
printf("%d %s %d\n", ps1->age, ps1->name, ps1->id); // 该行与上一行效果相同即 ps1->age和(*ps1).age效果相同
return 0;
}
}