引用变量和const指针变量之间有什么区别?

时间:2010-12-02 07:13:18

标签: c++ pointers reference constants

  

可能重复:
  Difference between pointer variable and reference variable in C++

这是this question

的延续

引用变量只是const指针变量的另一个名称吗?如果它们不同,声明为引用变量的变量和声明为const指针变量的变量之间的区别是什么?

3 个答案:

答案 0 :(得分:3)

只是为了好玩:)引用不能为NULL,但const指针可以是。

答案 1 :(得分:1)

行。问题是没有引用变量之类的东西。参考文献根本不是变量。它不是一个对象。它实际上没有任何大小。它只是原始对象的替代名称。

检查一下:

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

答案 2 :(得分:0)

  

引用变量只是const指针变量的另一个名称吗?

没有

  

如果它们不同,声明为引用变量的变量和声明为const指针变量的变量之间的区别是什么?

它们是完全不同的东西,没有足够的空间来解释你需要知道的一切。阅读this。实际上,请阅读entire FAQ。你会学到很多东西。