#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//创建一个结构体类型-structStu
struct Stu
{
//成员变量
char name[20];
int age;
char id[20];
};
int main()
{
int a = 10;
//使用struct Stu这个类型开辟创建了一个学生对象s1,并初始化
struct Stu s1 = { "张三",20,"20210225" };
//s1既然是开辟出来的struct Stu这种类型的空间,那么他的地址是什么?我们取他的地址
struct Stu* ps = &s1;//这次用指针的方式
//方式三
printf("%s\n", ps->name);
printf("%d\n", ps->age);
printf("%d\n", ps->id);
//方式二
printf("%s\n", (*ps).name);
printf("%d\n", (*ps).age);
printf("%d\n", (*ps).id);
//方式一
printf("%s\n", s1.name);
printf("%d\n", s1.age);
printf("%d\n", s1.id);
}
以上的三种方式都能输出正确的结果
附图理解:
p=&a是根据名字得地址
*p=a是根据地址得名字
剩下2个意思一样,都是地址指向名字内容