引用变量和 const 指针变量有啥区别? [复制]
Posted
技术标签:
【中文标题】引用变量和 const 指针变量有啥区别? [复制]【英文标题】:What is the difference between a reference variable and a const pointer variable? [duplicate]引用变量和 const 指针变量有什么区别? [复制] 【发布时间】:2010-12-02 07:13:17 【问题描述】:可能重复:Difference between pointer variable and reference variable in C++
这是this question的延续
引用变量只是 const 指针变量的另一个名称吗?如果它们不同,声明为引用变量的变量和声明为 const 指针变量的变量有什么区别?
【问题讨论】:
除非您真的想问指针和 const 指针之间的区别,否则这是您链接到的问题的副本。 这已经在您所指的同一个问题中得到了回答。从第一个答案开始,除了可以重新分配之外的所有点都成立。 Difference between pointer variable and reference variable in C++ 的可能重复项 【参考方案1】:只是为了好玩:) 引用不能为 NULL,但 const 指针可以。
【讨论】:
@Chusbad:第一反应也是:p【参考方案2】:好的。问题是没有像reference variable这样的东西。参考根本不是变量。它不是一个对象。它实际上根本没有大小。它只是原始对象的替代名称。
检查一下:
struct A
int i[5];
;
int main()
std::cout << (sizeof(A&) == sizeof(A)) << std::endl;
std::cout << (typeid(A&) == typeid(A)) << std::endl;
return 0;
A& has the same size as A
A& has the same type as A
【讨论】:
对 C++03 正确,但 C++0x introduces the notion of reference variables.【参考方案3】:引用变量只是 const 指针变量的另一个名称吗?
没有。
如果它们不同,声明为引用变量的变量和声明为 const 指针变量的变量有什么区别?
它们是完全不同的东西,这里没有足够的空间来解释你需要知道的一切。阅读this。实际上,请阅读entire FAQ。你会学到很多东西。
【讨论】:
以上是关于引用变量和 const 指针变量有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章