一道困惑已久的问题,求助!!!

icebanana CSDN会员 icebanana 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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 函数调用的倒数第三个参数?

...全文
评论 5
收藏 已收藏
分享
返回顶部
icebanana CSDN会员
VC/MFC 16,550 成员 421,606 内容