函数func的定义如下:
1
2
3
4
5
|
void
func(
const
int
& v1, cont
int
& v2)
{
std::cout << v1 <<
' '
;
std::cout << v2 <<
' '
;
}
|
以下代码输出结果为____。
1
2
3
4
5
6
|
int
main (
int
argc,
char
* argv[])
{
int
i=0;
func(++i,i++);
return
0;
}
|
0 1
1 2
2 1
2 0
程序强制终止并报错
结果与编译器有关
答案:结果与编译器有关 错选:2 0
C语言函数参数入栈顺序为由右向左,func(++i, i++)可以分解为
参数 i 先入栈 输出0
然后执行i++ 此时i为1
接着参数 i 先执行++i i 此时为2 后入栈进行输出 2