刚入门C++,对自增自减有点疑问...
i++是先进行运算再自增1++i是先自增1再进行运算
小甲鱼的这道例题
#include <stdio.h>
void main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",i,j,p,q);
}
为什么p=15,q=22?
我想讲讲我的(错误)思路{:10_266:} :
p=5+6+7=18 此时i=8
q=6+7+8=22 此时j=8
这可能是编译器的问题。
楼主,你确定 6+7+8=22? zltzlt 发表于 2020-1-11 21:09
这可能是编译器的问题。
楼主,你确定 6+7+8=22?
{:10_266:}打错了,我的思路是6+7+8=21
跑出来是22 班kj 发表于 2020-1-11 21:20
打错了,我的思路是6+7+8=21
跑出来是22
后缀++的优先级比普通的加减运算还低吗?{:10_266:}
就算如此,不是每个i++还加了个优先级最高的括号吗? 班kj 发表于 2020-1-11 21:22
后缀++的优先级比普通的加减运算还低吗?
就算如此,不是每个i++还加了个优先级最高的括号吗 ...
这类问题不同的编译器很可能会有不同的结果
不用纠结这类问题了
页:
[1]