社区讨论
C++实参列表从右往左算
灌水区参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m6daeqls
- 此快照首次捕获于
- 2025/01/26 15:17 去年
- 此快照最后确认于
- 2025/11/04 10:18 4 个月前
省流:C++逗号运算符左结合,但调用函数时计算顺序相反
做题 ing...(P1175)诶等下 #2 到 #10 全 WA 了?而且都显示 line 2 有问题
看题解,测了一组
CPP(2+3)*(4+5)
第一行
2 3 + 4 5 + *没问题嘛……等等怎么先算的 4+5?!最后发现是这个:
CPPtr[x]=node(s[p0],dfs(l,p0-1),dfs(p0+1,r));
这里会先调用右边的 dfs,导致后序遍历的“左-右-根”变成“右-左-根”(注:
node(int,int,int)是结构体构造函数)是这样吗?于是写了测试程序:
CPP#include <bits/stdc++.h>
using namespace std;
int f(int x){
cout<<"test"<<x<<endl;
return x;
}
int add(int a,int b){
return a+b;
}
int main(){
f(1),f(2);
cout<<"-----"<<endl;
add(f(1),f(2));
return 0;
}
输出是这样的:
CPPtest1
test2
-----
test2
test1
猜想成立,改完 AC,遂写此记。
回复
共 4 条回复,欢迎继续交流。
正在加载回复...