2017-07-12 92 views
-7
const int m=10;  
int &n=m;  
n=11;  
cout << m << n;  

它导致编译时错误下面的代码。请详细解释

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

+3

“它导致编译时错误。”编译器说什么?通常这个问题写在那里。 –

+2

你想让我们向你解释你自己的代码吗?即使它编译了,你试图做的是未定义的行为,所以不要。 – Borgleader

+0

你的代码中没有指针,只是一个参考。你试图通过一个非'contst'引用修改'const int'。这应该是显而易见的,为什么这不起作用。 –

回答

2

我可以看到为什么你遇到这个指针变量的问题:它不是一个。这是一个参考。

你不能有非const参照const事情。这将违反const,并允许n = 11线获得成功,从而再次违反了原const

const的意思是“我不能,也不会改变这个东西更多”。

欲了解更多信息,翻到页在C++预定约const