事故现场:做算法题时需要给函数传递一个递增的变量
//最开始的做法
dfs(u ++ )
//整个程序一直报"内存超限",反复检查模拟了n遍其他代码的逻辑,没找到原因,心态崩
//通过各种原因定位到这样传参数可能有问题,第一反应是后置递增运算符有“延迟”,遂换成以下写法
dfs(++ u)
//调试还是不通过,怀疑人生
//正确答案如下
dfs(u + 1)
//一开始死活想不明白为什么
面向google编程,得到如下解释
前置操作返回的是加1后的值,返回的是对象本身,所以这是左值。
后置操作返回的是加1前的值,其返回值可以近似的理解为与原操作数值相等的常量,所以是一个右值
原来是这样,但是可能我c之前一遍遍查代码的我像极了一个无知的傻子,可能我不适合干这行吧