的点争论的问题:int i = 3, !i = ?

来源:百度知道 编辑:UC知道 时间:2024/05/18 03:40:43
void main() {
int x = 3;
do {
printf("%d", x--);
}while(!x);
}

输出的是多少呀,有人说是只输出一个3,有的人说输出3,2,1
C语言中,是不是因为x=3是表示真,而!x就表示假呢?

do {
printf("%d", x--);
}while(!x);

执行结果是3
因为do while是先执行再判断,所以先输出3,然后x--;x为2
判断while(!x)
首先执行!x,在c中,非0就是真,对非0取反就是0就是假(0),所以!x是假,while()只有()内的条件为真时才执行,所以,就跳出不再执行了。

========================
在c中 true就是非0 false就是0
只要是非0的数就是真,所有的真取反就是假,也就是0;
3是非0,所以取反就是0,就是假

执行的结果是3哈~ 不要在乎别人怎么说,执行的结果才是对的
=================================
C中0是假 而大于0是真哈,所以!x=0就是假,循环就退出了

没错,是3```