一道C语言的! 不理解!x的含义!

img


为什么是23啊!不应该是22吗?
还想问问那个!x是x为0的时候为真的意思吗?
不太理解!

do{
}while();
是会先做一遍do里面的才会进行判断
在自加自减符号里面--在后 整个a--表达式的值还时23 但是a的值是22了
如果printf(“”);里改成--a 那么出来的结果便是22

执行步骤:
printf("%d",a);
a--;
!a是a为0的时候为真

如果--a的话,它就是22,但是它是a--此处为23
a--先执行相关语句后 再自减1 --a就是先自减1再执行相关语句 所以本题为23
希望对题主有所帮助,望采纳!

!表示非
a大于0为真
而!a表示a<0为真,
只执行一次,打印a,
然后再a--
a--是先取值再减