c - -> 和点有什么区别

标签 c ansi-c

在 C 程序中,当我定义结构时。

在什么情况下我会使用“->”,在什么情况下会使用“.” ?

例如

typedef struct foo foo;

struct foo{

  double bar;
  double bar2;
}

foo barbar;

我什么时候会使用barbar.bar我什么时候会使用 barbar->bar

最佳答案

->的左边应该是指针类型,而的普通变量/实例。

  • 如果您有 struct foo myFoo,则应使用 myFoo.(&myFoo)->
  • 如果您有 struct foo *myFoo,则应使用 myFoo->(*myFoo)。

关于c - -> 和点有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569123/

相关文章:

c - 在 shell 上的这个 C 程序中为什么会出现段错误错误

c - 为什么 gets() 比 scanf() 更危险?

c 用作矩阵索引的指针

c - 使用 C 语言的 GNU 科学库进行线性拟合

c - 分配 : error double free with printf and a NULL wchar_t*

c++ - "ANSI C"或 "ANSI C++"在今天还有意义吗?

c++ - 对库对象的 C 引用

c - 通过 IF 语句选择结构

c - C89 关于两个负数 : round up, 向下舍入或未定义的整数除法的行为是什么?

c - 在 C 中访问传递给具有空参数列表的函数的参数