C语言的自加自减到底从函数哪里开始,从哪里结束?

Python020

C语言的自加自减到底从函数哪里开始,从哪里结束?,第1张

我们一行一行分析:

for (x = 5x >0x--) //从x=5开始,当x>0的值为false时停止循环。每次循环x自减。

if (x-- <5) printf("%d", x)//x--的值就等于x,也就是说第一次是不执行的。这个语句同时也会将x自减。

else printf("%d", x++)//x++的值也等于x,但同时也会将x自增。第一次会执行这个语句,输出为x-1(等于4),因为在判断语句中x自减了。

所以,第一轮输出为4。

第二轮,x因为for循环自减了,此时x-- <5也已满足,又因为在上一轮循环中加1,因此输出4+1-1-1=2;

第三轮与第二轮相似,不同之处在于没有执行printf("%d", x++),因此x的值减2,输出1

根据《C语言规则》

①是。j++等价于j=j+1

,

j--相当于j=j-1

所以自加自减语句都是赋值语句。

②int

a=2

/*定义了整型变量a,并赋了初值2*/

((a++)*(a++)*(a++))

/*

假设令t=((a++)*(a++)*(a++)),

t=8

*/

因为每一个相乘的因子都使用了一次,所以a在里面都自增了一次。

即:

a=a+3=5