其他分享
首页 > 其他分享> > c – 引用是否有存储位置?

c – 引用是否有存储位置?

作者:互联网

引用是否具有存储位置,或者它只是另一个位置的别名?这与C版本有所不同,还是与所有版本的C一致?如果引用具有存储位置,那么它是否只允许类型指针上的值语义?

当您使用它时,引用如何工作:

struct aStruct{
   int aVariable;
   aClass& aReferencetoaClass;
};

是占用空间还是别名?

解决方法:

latest C++20 spec(第9.2.3.3节)和至少自C++ 2005 draft spec国家以来:

It is unspecified whether or not a reference requires storage

实际执行情况视具体情况而定.显然,如果一个类有一个成员变量,它是一个需要存储在某处的引用.但是编译器在将引用仅用作别名时有余地,正如您所说的那样.

标签:memory-layout,c,language-lawyer,reference,storage-duration
来源: https://codeday.me/bug/20191006/1860253.html