【问题标题】: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++ 的可能重复项

标签: c++ pointers reference constants


【解决方案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

【讨论】:

【解决方案3】:

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

没有。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2016-10-19
    • 2016-05-03
    • 2015-05-19
    • 1970-01-01
    • 2016-06-13
    • 2014-06-25
    相关资源
    最近更新 更多