是
int &y=x
是否与int y=&x
相同?玩参考变量和指针是
s++
和*s++
一样吗?同样在下面的代码中,为什么
*s++
给我一些错误的结果?我期待
*s
值为12
#include <iostream>
using namespace std;
int main()
{
int p=10;
int &q=p; //q is a reference variable to p
//int r=&p; //error: invalid conversion from 'int*' to 'int'
int *s=&p; //valid
q++;
*s++; //here even s++ works, and cout<<*s does not give 12 but some lengthy number
//and cout<<s gives some hexadecimal, I'm guessing thats the address
cout<<p<<endl<<q<<endl<<*s;
}
输出我得到:
11 11 6422280
“r =&p”给你一个错误的原因是你声明了一个int,意思是你告诉编译器,“嘿,我要在内存中存储一个整数。”但是不是递交一个整数,而是递交了一个存储整数的地址。这是一种类型不匹配。编译器试图隐式地将它转换为int,但地址看起来不像整数。因此错误。 –
这些都是需要特别提出的问题。由于一个是错误而另一个不是,所以它们不可能是相同的。 2.因为它们不具有相同的效果,它们不可能是相同的。 – molbdnilo