谭号强C++程序设计里面函数调用fun(i,++i)的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/19 01:53:52
谭号强C++程序设计里面大体意思是这样的:在vc里面,若变量i的值为3,有以下函数调用:fun(i,++i); 它相当于fun(3,3);而不是fun(3,4)。
问题1:是不是他的书上写错了,怎么可能是fun(3,3)呢?应该是fun(4,4)吧。
问题2:问题1是可以用VC来验证的,具体的验证步骤是怎样的?关键是函数fun(i,++i)如何定义,定义后如何调用?
谢谢各位,回答满意有加分50!

书上印刷错误,相当于fun(4,4)

验证函数:
#include <iostream>

void fun(int a,int b)
{
std::cout<<a<<std::endl<<b<<std::endl;
}

int main(void)
{
int i=3;
fun(i,++i);
return 0;
}

我也觉得是fun(4,4),vc是标准调用吧,参数从右往左,被调用者平衡栈,先执行++i
DEV-C++ 5编译通过

#include <cstdlib>
#include <iostream>

using namespace std;
void fun(int a,int b)
{
printf("%d:%d",a,b);
}
int main(int argc, char *argv[])
{

int i = 3;
fun(i,++i);
system("PAUSE");
return EXIT_SUCCESS;
}

#include "stdafx.h"
#include<iostream>
using namespace std;

void fun(int i, int k)
{
cout<<i<<endl;
cout<<k<<endl;
}
int main()
{
int i =3;
fun(i,++i);
}
我在vs2005下输出