C语言自增运算符

C语言自增运算符,第1张

(1)printf("%d", i++) 后缀,表达式里用 i, 出了表达式 自增1,或笑故,分衫答含解为: printf("%d", i) i=i+1

(2) printf("举洞%d", ++i)前缀,先自增,后用于表达式,故,分解为: i=i+1printf("%d", i)

(3)(4) 同理,printf("%d", i--)分解为:printf("%d", i) i=i-1

printf("%d", --i) 分解为: i=i-1printf("%d", i)

把分解后的语句组合起来,就可看出,输出为 40 42 42 40

这是一类特殊的运算符,自增运算符++和自减运算符—对变量的 *** 作结果是增加1和减少1.例如:

--CouterCouter-++AmountAmount++

看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者友哪减1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在丛咐变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在好郑码变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:

num1=4num2=8a=++num1b=num2++ a=++r

+num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先白增加1变为5,然后赋值给a,最终a也为5。b=num2++;这是把num2++的值赋给b,因为白增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为9。

那么如果出现这样的情况我们怎么处理呢?c=num1+++num2

到底是

c=(num1++)+num2

还是

c=num1+(++num2)

这要根据编译器来决定,不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12404207.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存