一道困惑已久的问题,求助!!!
int &f() {int i=10; int &j=i; return j; }
int g() {int j=20; return j; }
int main(int argc, char* argv[])
{
int &ri=f( );
int rj=g( );
printf("ri=%d\trj=%d\n", ri, rj, 1, 2, 3, 4, 5, 6, 7,8);
int &gi=f( );
int gj=g( );
printf ("gi=%d\tgj=%d\n", gi, gj);
return 0;
}
打印结果 ri 和 gi 不相等,删除 printf 语句中的 8, 结果会有变化? 再删除 printf 语句中的 7, 结果又有变化,为什么ri 的值总是打印其值的 printf 函数调用的倒数第三个参数?