C中的参考文献

Joh*_*ohn 0 c reference

这是一个理论问题.

我想知道如何在没有引用的情况下在内部执行C中的某些构造.例如:

struct Foo { int a; };
int main() {
  struct Foo foo;
  foo.a = 10;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

是什么类型的foo.a?它绝对不是指针,因为我们将其指定10为值,而不是地址.但它也不是一种价值类型,因为它改变了数据foo.在C++中,我只想说它是一个参考,但在C?

Ran*_*832 7

这是一个内部价值.与您相同int bar,并bar = 10更改数据bar.同样适用于数组中的任何元素.基本上任何你可以采取地址的是左值.

左值状态与类型无关.