[求助]C++临时变量,指针问题
int i=5;const int *n=&(i-1);
cout<<*n;
为什么是错的呢?
而像int i = 5;
int a = i - 1;
之类的语句又是怎么执行的呢?中间产生临时变量么?
对于
int i = 5;
int a = i - 1;
之类的语句又是怎么执行的呢?中间产生临时变量么?
看中学者的解释就对了
而第一个问题应该解释如下:
首先i-1是一个表达值,它会产生一个临时变量,而任何变量都是有生命期的。这里()便是它的生命周期,出了()它就无效了,所以无法用&取址。
[[it] 本帖最后由 冰烨 于 2008-10-13 09:39 编辑 [/it]]