为什么它给出了变量d的不同答案?
pragma solidity >=0.8.0 < 0.9.0;
contract Exercise{
uint256 a = 2;
uint256 public c = a + a++;
uint256 public d = a + a++; // here why does a + (a++) give 7 but (a++) + a give 6
uint public e = a;
}发布于 2022-12-19 21:25:16
因为a++是如何工作的。它返回一个,然后递增它。a + (a++);等于a+ a,下次访问a时,它的值将增加,而(a++) + a是+ a,但在二次读取其值之前,a已经增加了。以下是关于++运算符的另一个问题
https://ethereum.stackexchange.com/questions/141513
复制相似问题