关于左值和右值
今天在坛子上面看了个左值和右值的文章。有个程序不知道怎么得到的。。麻烦大家看下,指教下。
- C/C++ code
#include <iostream>#include <cstdio> using namespace std;int &fun(int &a) { a+=5; return a; }int main(void) { int ii =5; fun(ii)= 800; printf("%d",fun(ii)); system("pause");}
这里的结果是805为啥啊?
我的IDE是DEV
[解决办法]
- C/C++ code
#include <iostream>#include <cstdio> using namespace std;int &fun(int &a) { a+=5; return a; }int main(void) { int ii =5; fun(ii)= 800; //调用fun函数返回的是ii的引用,那么这条语句就是将ii赋值为800 printf("%d",fun(ii)); //调用fun函数,此时传入的ii是800,经过函数以后加5,输出的就是805 system("pause");}