C语言新人求解,关于一元运算符“++”

Int i,k;
I = 3;
K = ++I + ++I + i++
求输出的k值;
程序里面运行的和我想的不一样.....能帮我简单分析一下么,谢谢!

可是怎么我在dev-c++ 5.5.3 上编译下来答案也是15呀?
发现 k=++i + ++i 算到的答案是 10 !图片说明
你看,++运算是比 + 运算更优先的,
所以他是先把两个 ++i 算了,这时 i=5,然后再算 k=i+i+i,最后再算第三个(i++)。
总结一下这个运算的步骤:①++i,++i (i=5) ②k=i+i+i(k=5+5+5=10) ③i++(i=6)

我觉得因该是这个原因,你看一看吧!

请把题目写清楚一些,大小写弄乱了吧。
i++是先取出i,再加1,++i先加1后取i

++符号,++i是先加1在进行运算,i++是先进行运算,然后i在自加1,但是当一个式子中有多个++符号时,在不同的系统以及VC版本中会有不同的结果,这是正常现象,所以在程序中将尽量不要出现多个++符号的运算,否则很容易出错。

核心思想就是i++是先赋值再加,++i是先加再赋值。所以当出现++i + ++i + i++的时候,等于(++i) + (++i) + (i++) =4+5+5 = 14。但不同的编译器可能会有不同的处理,比如vs会把++i先计算出来,然后直接计算(++i) + (++i)的部分,也就是5+5=10.

知道这个概念就可以了,实际开发不会这么写的。

你先把括号加上好不?加上之后不就简明了吗,程序重要的是应用,不要钻牛角尖,因为时间不够,也没必要。我以前就钻过,但没多少用,在编写的时候自然会了解那些才是重点

也是,其实自己打的时候不用这样压行,只要自己懂得其中原理就行了。
这里你只要记住这些运算的顺序:"++"(在前) 大于 "+"(普通的加) 大于 "++"(在后),
所以就先把所有的 ++i 算完了之后才用这时的 i 加到k里面的。

这张运算优先级表应该会带来很大益处!
图片说明

K = ++i + ++i + i++
i的初始值为3,单目运算符++的优先级高于+,则先执行++,此时i = 4, k = 4 + ++i + i++, 加号与 ++相遇,i此时为5, k = 4 + 5 + i++, + 遇到
加号先计算第一个加号k = 9 + i++,加号与 ++相遇,i++这个是在整条语句结束后进行自加的,k = 9 + 5,则k = 14, 此时i = 6