C语言的问题:i++和++i的问题 int a,t=1; a=(i++)+(++i)+i 和 (i++)+(++i)+i 和 i=(i++)+(++i)+i

如题,为什么后两者都等于7,而a=6
2025-03-24 08:55:15
推荐回答(1个)
回答(1):

i++和++i的优先级随着你的编译器的不同而变化
如果是vs 整个句子中如果出现++i 不管还有其他什么东西,i首先自加1
即首先执行++i,i变为2
a = (2++) + (2) + 2 = 6
然后i自加1 变为3
如果是gcc编译器 则按照由左至右的顺序 计算,不优先计算++i
你这三个式子不都是一样的么,第二个还没有赋值符号