【问题标题】:Please explain the following code in detail [closed]请详细解释以下代码[关闭]
【发布时间】:2017-07-12 15:45:11
【问题描述】:
const int m=10;    
int &n=m;    
n=11;    
cout << m << n;    

它会导致编译时错误。

我只是无法学习这个指针变量。请解释。

【问题讨论】:

  • "导致编译时错误。"编译器说什么?通常问题就写在那里。
  • 您希望我们向您解释您自己的代码吗?此外,即使它确实编译了,你试图做的是未定义的行为,所以不要。
  • 您的代码中没有指针,只是一个参考。您正在尝试通过非const 引用修改const int。为什么这不起作用应该很明显。
  • T&amp; variable 声明了一个 T&amp; 类型的变量 - T 引用。它没有声明 T* 类型的变量,它是指向 T 的指针。
  • 抱歉编译成功但有警告。 "临时用于初始化'n'。基本上我看不懂这段代码。有人问输出是什么。

标签: c++ reference constants


【解决方案1】:

我明白你为什么在使用这个指针变量时遇到问题:它不是一个。这是一个参考。

您不能将非const 引用指向const 事物。这将违反const,并允许n = 11 行成功,从而再次违反原始const

const 的意思是“我不能也不会再改变这件事了”。

有关更多信息,请转到 C++ 书中关于 const 的页面。

【讨论】:

    猜你喜欢
    • 2014-02-15
    • 2015-01-06
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    相关资源
    最近更新 更多