帮我看看这到C++题 错没啊???????

来源:百度知道 编辑:UC知道 时间:2024/05/10 18:01:22
#include<stdio.h>
int & f()
{
static int i=1;
return++i;
}
int g()
{
int j=2;
return ++j;
}
main()
{
int &ri:f();
ri=f();
int rj=g();
rj=g();
printf("ri=%d,rj=%d",ri,rj);
ri=10;
ri=f()
ri=g();
printf("ri=%d,rj=%d",ri,rj);
f()=100;
rj=g();
printf("ri=%d,rj=%d",ri,rj);
}

它的输出是什么?解释下输出的结果。

谢谢了

这个程序有问题的,修改后的程序如下:
#include<stdio.h>
int & f()
{
static int i=1;
return++i;
}
int g()
{
int j=2;
return ++j;
}
void main()
{
int ri=f(); //此处改为这样
ri=f();
int rj=g();
rj=g();
printf("ri=%d,rj=%d",ri,rj);
ri=10;
ri=f(); //此处需要加个分号
ri=g();
printf("ri=%d,rj=%d",ri,rj);
f()=100;
rj=g();
printf("ri=%d,rj=%d",ri,rj);
}
程序的输出结果为:
ri=3,rj=3ri=3,rj=3ri=3,rj=3
程序比较简单的,楼主只需要稍加分析就可以得出答案的。

VC++ 编译错误

It is a C program.