注册 登录
编程论坛 C++教室

分析下列程序的输出结果

realll 发布于 2010-05-22 17:03, 825 次点击
1.#include<iostream.h>
#define N 5
void fun();
void main()
{
for (int i(1);i<N;i++)
fun();
}
void fun ()
{
static int a;
int b(2);
cout<<(a+=3,a+b)<<endl;
}

答案是输出结果
5
8
11
14

可是我用VC编译····下 输出结果为5

想知道 如果输出结果像答案那样 ,代码应该怎么修改??
多谢多谢
4 回复
#2
wangzhsh2010-05-22 17:57
回复 楼主 realll
程序没有错!!结果也对。。。
我试过了~~~~~
#3
xiaomizhou2010-05-22 21:56
这是一个考察静态变量的程序,程序没错,答案也正确。
#4
最近不在2010-05-23 11:05
程序代码:
#include<iostream.h>
#define N 5
void fun();
void main()
{
for (int i(1);i<N;i++)
fun();
}
void fun ()
{
static int a;    //静态变量,默认初始化为0
int b(2);
cout<<(a+=3,a+b)<<endl;   // (a += 3, a+b)    逗号运算符,结果取最右边的值作为表达式的值。
}                            //a += 3;  则a = 3。a+b; 则值为5  //由于a为静态变量,下次进入该函数体,a开始为3      
#5
yjj6340419262010-05-23 15:14
可能是你的软件出了点小问题吧
   我运行的结果也是对 的。。。。。
1