@[fighterkong](/user/547618) 举个例子
```cpp
solve(a[pr--])
事实上传到函数里面的值是 a[pr] ,函数操作完后才会 pr--
而 solve(pr--) ,这个时候 pr 已经减一了,然后才传进函数中的,所以肯定是有问题的。
```
by RealKzos @ 2022-03-10 13:38:53
@[simpleton](/user/178803) 彳亍,我肤浅了
by fighterkong @ 2022-03-10 22:07:25
@[simpleton](/user/178803) 不是啊
```cpp
#include<iostream>
#include<cstdio>
using namespace std;
int now=666;
void solve(int x)
{
cout<<x<<endl;
}
int main()
{
solve(now--);
return 0;
}
```
这个程序的输出是 $666$,说明它是先传入函数再减减的啊。
by Elegy_of_Green_Kite @ 2022-05-13 13:08:05
@[Elegy_of_Green_Kite](/user/242473) 彳亍,我肤浅了
by RealKzos @ 2022-05-13 14:25:32
@[fighterkong](/user/547618) 第一份之所以错了,是因为两份代码里面的 update 里面给 `add` 和 `del` 传入的都是数字而不是下标,而第一份代码的 `add` 和 `del` 传入的是下标,所以就错了
以及对于 `add(--l)` 和 `add(a[--l])` 这样的操作,都是先 `--l` 后调用函数,没毛病
by Hanoist @ 2022-05-19 10:49:27
以及 `add(a[l--])` 和 `add(l--)` 都是先调用函数后 `l--`
by Hanoist @ 2022-05-19 10:52:51