有人可以向我解释一下这个简单代码段的输出吗?
int i=7;
int j=3*i-- + 2;
printf("%d %d",i,j)
当我编译时,我得到 6,23
。
23是怎么来的?我以为是 3*7=21 减少到 20 加 2 是 22 不是 23?
最佳答案
int i = 7; /* i is 7 */
int j = (3 * (i--)) /* means 3 * 7 */ + 2; /* 3 * 7 + 2 = 23 */
/* i is now 6, because it was decreased by the postfix -- operator */
printf("%d %d", i /* 6 */, j /* 23 */);
关于c - 为什么这个算术表达式会产生这个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781506/