c - 在 C 中,node.next->prev 是否与 node->next->prev 相同?
问题描述
表达式的node.next->prev
计算结果是否与node->next->prev
?
解决方案
在 C 中,至少有一个node.next->prev
并且node->next->prev
不会编译。
如果node
被声明为指向结构的指针(例如struct Node* node
),那么您不能在其上使用.
运算符,因为.
只能应用于诚实至善struct
的 s,而不是指向它们的指针。在这种情况下,node.next->prev
不会编译,而node->next->prev
会。相反,如果node
被定义为实际的诚实struct
(比如,struct Node node
),则node->next->prev
不会编译,因为->
只能应用于指针,而node.next->prev
会。
话虽如此,这两段代码背后的意图是相同的。它们都表示“去某个节点,选择它的next
字段,然后读取prev
任何节点的字段”。
推荐阅读
- c# - WPF DataGridNumericUpDownColumn 从 DataTable 设置值
- .net-core - dotnet core - rest API + SQL server - 可能不是 MVC(只有控制器?)
- verilog - Verilog 8 位处理器代码中的锁存器生成警告
- javascript - 到处使用异步函数的(潜在)缺点是什么?
- java - 静态变量及其值的继承如何工作?
- java - 无法在按钮中重新缩放可绘制对象
- java - Java执行网页
- reactjs - 反应路由器:空白页
- google-cloud-platform - Apache Beam GroupByKey 似乎没有输出任何东西
- php - php - 按点排序,然后按字母顺序