最近学习C语言时遇到一些关于加加减减运算符的基础问题,在查询中发现此类文章并不多,可能过于基础,用得也不多,对于我这种新手小白来说比较难以理解,于是想记录一下加加减减运算符在printf的一些规则
下面是一段基础程序,你可以自己试试看是否能算出来会输出多少
下面是运行的到的结果,不知道和你算的是否一样呢?
在printf语句中,加加减减运算符是这样计算的:
首先,从右往左计算,且前置++或--需要到从右到左计算完后才填最终的值,遇到前置++或--时,i的值会相应加或减1,遇到后置++或--时先填值再加或减1,遇到无加加减减运算符时,则不作任何操作,但此时的h的值也需要算完后等于最终的值,描述的有点抽象啊,直接看上面这道例题的过程吧
从右往左算,即先算下面这个数
其为前置++,则现在h的值为8+1=9;但printf函数的最后一个%d并不直接填9,而是要等到全部算完之后得到h的最终值时等于这最终值
下一个数
其为后置--,则可直接填入h的值,即这个数输出时为-9,之后我们要减1,即现在h的值为8;
再往下
之后4个数与上面相同计算方法,从右往左算,从右往左依次值为为-8,9,8,9,则这几个数输出时就为这几个值,计算完此时h的值为8
再往下
到下面三个数时,和前面一样计算,即该加的加,该减的减,但不是最终数值,都要到最后计算完后与最终的h的值相同,计算完后h的值为9
下面这个数即第一个数无加加减减运算符则不操作,最后可得最终h的值为9
则下面这几个数都为9
最终就输出9 ,9,9,9 ,9,8,9,-8,-9,9
总结:在C语言的printf函数中有加加减减运算符时有以下规则
1.从右往左算,
2.h,++h,或--h,为计算完的最终h的值,但在从右往左计算的过程中需要正常加或减1
3.遇到h--或h++,先填入此时h的值,再加或减1
PS:初次写这种blog,没想到挺简单一问题写了这么长,也许还有一些出错的地方,望大家包容包容,这是一个超基础的问题,新手小白学c时应该都会遇到,希望大家能够从中有所收获吧,有什么不懂的也可以和我讨论讨论,共同学习,共同成长,加油,C语言yyds