typedef struct Student{int a;}pStu;
然后直接这样用pStus,这是啥意思,pStu不已经是个结构体指针了吗
![](https://profile-avatar.csdnimg.cn/a011d0908e98402895991216401d63d4_2301_77331351.jpg!4)
关于tyoedef 重定义结构体的使用问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
在C语言中,
typedef
是一个预处理指令,用于为数据类型创建一个新的名字,以便于更简洁地引用它。在这个例子中,你定义了一个新的类型别名Stu
和pStu
。这里有一个详细的解释:- 首先,我们有结构体
Student
的定义:
typedef struct Student { int a; } Stu;
这表示创建了一个名为
struct Student
的新结构体,其中包含一个整型变量a
。然后,通过typedef
关键字,我们将这个结构体类型命名为Stu
。- 接下来,你也定义了另一个类型别名
pStu
:
pStu;
这里,你没有提供任何类型信息,但根据上下文,我们可以推断出
pStu
应该是指向Stu
结构体类型的指针。这是因为pStu
在定义时紧随在Stu
类型之后,通常人们会将它理解为指向Stu
的指针。所以,实际上pStu
就是Stu *
的别名。这意味着你可以用pStu
来声明指向Stu
结构体的指针变量。- 当你想要直接使用
pStu
声明一个变量时,例如pStu s
,实际上是声明了一个指向Stu
结构体的指针变量s
:
pStu s;
这里的
s
可以被赋值为一个指向Stu
结构体实例的地址,然后可以通过->
运算符访问其成员。例如:Stu student = {42}; // 创建一个 Stu 实例并初始化 a 为 42 pStu s = &student; // s 指向 student printf("%d\n", s->a); // 输出 42
总结一下,
typedef
让你可以给现有的数据类型(包括自定义的结构体)取一个新名字。在你的例子中,Stu
是struct Student
的别名,而pStu
被理解为Stu *
的别名,即指向Stu
结构体的指针。因此,可以直接使用pStu
来声明指向Stu
结构体的指针变量。解决 无用评论 打赏 举报 编辑记录- 首先,我们有结构体
悬赏问题
- ¥15 程序实在不会写,要秃了
- ¥15 pycharm导入不了自己的包
- ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
- ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
- ¥15 关于R语言单因素与多因素线性回归的平均值
- ¥15 服务器清除BIOS之后引导不了
- ¥15 CPLEX用OPL编写的混合整数线性优化问题。
- ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
- ¥15 前端预览docx文件,文件从后端传送过来。
- ¥15 层次聚类和蛋白质相似度