C语言中!(-3)是为0还是为1,为什么

Python017

C语言中!(-3)是为0还是为1,为什么,第1张

不是死循环

分析:

第一次循环,输出x的值为1,接下来判断while后的条件

首先,看--x,该表达式的值是0,在C中,表示逻辑假,再取反,得逻辑真

第二次循环,输出x的值为-2,接下来判断while后的条件,--x,该表达式的值是-3,表示逻辑真,再取反,得到0,表示逻辑假,不成立

所以,输出结果为1 -2

这个式子在C语言中是合法的,并且能够得到结果,%是取模的意思,并不止是求余数,他只要求他的两个操作数是整数。

该式子的结果是1

d=10/(-3)=-3

r=10-(-3)*d=1

%运算符需要两边都是整形,所以

x%(-3)不合法,b

中使用了逗号运算符,括号的返回值就是最后一个逗号后的表达式的值即a+b,

所以b的确是把a+b付给k。对于12(b),

定义和调用肯定不是一个意思,比方说如下两个函数定义:

void

a(){}

---(1)

void

b(){}

---(2)

我们不可以将(1)整行搬到(2)里吧,

void

b(){

void

a(){}

}

这是定义,但是我们可以在b里调用a,

如下:

void

b(){

a()

}

而递归调用就是自己调用自己,这也是可以的,比如

void

b(){

b()

}