gpt4 book ai didi

c - 指向变量的指针和指向 C 中结构的指针之间的区别

转载 作者:太空狗 更新时间:2023-10-29 17:16:17 25 4
gpt4 key购买 nike

在学习C的过程中,刚开始学习结构指针,有一些疑问。

假设我要创建一个名为myStructure 的结构,然后创建一个指针myStructurePointer,指向myStructure*myStructurePointermyStructure 是引用同一事物的两种方式吗?如果是这样,为什么需要 -> 运算符?使用 *myStructurePointer.variable_name 似乎比使用 myStructurePointer->variable_name 更简单。

最佳答案

你是对的,

(*structurePointer).field

完全一样

structurePointer->field

但是,您拥有的是:

*structurePointer.field

它实际上尝试在指针变量上使用 . 运算符,然后取消引用其结果 - 它甚至不会编译。如果您希望表达式等价,则需要括号,因为我在上面的第一个示例中使用了它们。在这种简单的情况下,箭头至少节省了几次击键。

如果您考虑结构字段具有指针类型(可能指向另一个结构)的情况,使用 -> 可能更有意义:

structurePointer->field->field2

对比

(*(*structurePointer).field).field2

关于c - 指向变量的指针和指向 C 中结构的指针之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com