先贴上代码,看注释理解吧
<pre name="code" class="cpp">#include <iostream>
using namespace std;
void fun(const int &a, const int &b){
cout<<a<<endl<<b<<endl;
}
int main(){
int i = 0;
fun(++i,i++); //调用时参数从右向左,其中i++只是才传递一个等于i的数值
//给形参;而++i则是变量i本身的地址被记录传递
int j = 0;
fun(j++,++j);
int j1 = 0;
int &k1 = j1++; //编译报错:error C2440: 'initializing' : cannot
//convert from 'int' to 'int &',必须改成int &k1 = j1
++j1;
int j2 = 0;
int &k2 = ++j2; //编译正常无措
j2++;
return 0;
}