vc6.0中运算符的一个有关问题
vc6.0中运算符的一个问题
书上一道题,求输出结果:
#include <iostream.h>
int fun(int x, int y)
{
return x*y;
}
void main()
{
int k=5;
cout<<fun(k++,++k)<<endl;
}
答案是36.
可我还是没太懂,求各位大侠帮忙解释下。
另外:这程序和下面这个难道不等价吗?
#include <iostream.h>
int fun(int x, int y)
{
return x*y;
}
void main()
{
int k=5;
int a,b;
a=k++;
b=++k;
cout<<fun(a,b)<<endl;
}
求分析,谢了
------解决方案--------------------
++k先运算
k++后运算
fun(k++,++k)相当于:
a = k;
b = k;
a = k+1;
fun(b,a);
b = k+1;
------解决方案--------------------
函数参数中计算顺序是从右往左的
书上一道题,求输出结果:
#include <iostream.h>
int fun(int x, int y)
{
return x*y;
}
void main()
{
int k=5;
cout<<fun(k++,++k)<<endl;
}
答案是36.
可我还是没太懂,求各位大侠帮忙解释下。
另外:这程序和下面这个难道不等价吗?
#include <iostream.h>
int fun(int x, int y)
{
return x*y;
}
void main()
{
int k=5;
int a,b;
a=k++;
b=++k;
cout<<fun(a,b)<<endl;
}
求分析,谢了
------解决方案--------------------
++k先运算
k++后运算
fun(k++,++k)相当于:
a = k;
b = k;
a = k+1;
fun(b,a);
b = k+1;
------解决方案--------------------
函数参数中计算顺序是从右往左的