教育改变生活

标题: 【C语言】结构体指针成员访问 [打印本页]

作者: wander    时间: 2024-6-17 21:32
标题: 【C语言】结构体指针成员访问
本帖最后由 wander 于 2024-6-17 21:39 编辑

指向结构体的指针该如何通过指针访问其成员呢?

通过结构体指针可以获取结构体成员,一般形式为:(*pointer).memberName
或者:
pointer->memberName
第一种写法中,.的优先级高于*(*pointer)两边的括号不能少。如果去掉括号写作*pointer.memberName,那么就等效于*(pointer.memberName),这样意义就完全不对了。

第二种写法中,->是一个新的运算符,习惯称它为“箭头”,有了它,可以通过结构体指针直接取得结构体成员;这也是->在C语言中的唯一用途。

上面的两种写法是等效的,我们通常采用后面的写法,这样更加直观。

【示例】结构体指针的使用。

运行结果:
Tom的学号是12,年龄是18,在A组,今年的成绩是136.5!
Tom的学号是12,年龄是18,在A组,今年的成绩是136.5!

【示例】结构体数组指针的使用。


运行结果:
Name           Num       Age     Group   Score
Zhou ping      5           18        C       145.0
Zhang ping    4           19        A       130.5
Liu fang        1           18        A       148.5
Cheng ling     2          17        F       139.0
Wang ming    3          17        B       144.5






欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2