c - (*x).y 与 x->y 相同吗?

标签 c struct dereference

运算符 -> 是否允许在 C 中使用而不是 .?它的可用性取决于我们使用的编译器吗? -> 运算符在最新的 C 标准中可用还是来自 C++ 标准?这两者有何不同?

最佳答案

在 C 中,c->m 等同于 (*c).m。括号是必需的,因为 . 的优先级高于 *。任何受人尊敬的编译器都会生成相同的代码。

在 C++ 中,除非 ->*overloaded , 等价如上。

关于c - (*x).y 与 x->y 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35079311/

相关文章:

c - 来自一个父进程的多个子进程

c - 找到边界元素之和最大的方子矩阵

c - 使用函数初始化结构

c - 图形程序中的结构指针数组错误

python - 将 Python 中的二进制文件读入结构

arrays - 二维数组的取消引用问题

c++ - oid 将 double* 转换为 double

c++ - 逻辑运算符与按位运算符的区别是什么

c - 在 C 中使用带有取消引用的增量运算符

c - 对标两个函数