社区讨论

关于min(a(),b())引发的问题

学术版参与者 8已保存回复 12

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
11 条
当前快照
1 份
快照标识符
@lus4gq4h
此快照首次捕获于
2024/04/09 16:31
2 年前
此快照最后确认于
2024/04/09 19:38
2 年前
查看原帖
rt
CPP
#include <iostream>
using namespace std;
int a() {return puts("A"),1;}
int b() {return puts("B"),2;}
int main() {
	cout << min(a(), b()) << " ";
	return 0;
}
输出
B
A
1
由输出可知,此代码会优先运行b()再运行a()
经尝试,似乎如min,max等函数的参数中若有其他函数时,将会从后往前先运行完那些函数,再运行自己。
这些行为背后的原理是什么?还是说这是c++的特性?还请大佬指教。

回复

12 条回复,欢迎继续交流。

正在加载回复...