C语言中这个表达式怎么解释?(菜鸟级)

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:20:40
若有int a=2;char c=‘a’;则表达式!(c-‘a’)的结果为1今天开始看的C语言,看到这就有点疑问了,是不是就像平常说的一样,c-‘a’等于0,然后再来个!否认,就是说不是0,所以是1呢?请会C语言的朋友指教下,谢谢

int说的是数据类型什么的 char是字符型.

因为c语言中没有bool类型(c++中有),所以在逻辑表达式中,认为0为假,非0为真,所以当一个表达式为0时,!表达式
在逻辑表达式中默认为1,当然,一个非0(不一定是值为1)的表达式在逻辑运算中也认为是真的.

!(c-‘a’)中,c和a的ASCII码的值是相等,两者相减实际上是ASCII码进行相减,值为0,加上个"!"后就是1了,