"i=!a" 在c语言中什么意思

如题所述

c语言中''i=!a''的意思是将a取非的值赋值给i。

!作为单目运算符的意思是取非,如!真=假,!假=真。C语言中一般情况下0表示假,非0表示真。

另外值得注意的是=,==和!=的区别,=是赋值运算符,即把=右侧表达式的值赋值给左侧的变量;==是逻辑等于运算符,当两侧的表达式的值相等时返回真,否则返回假;!=是逻辑不等于运算符,当两则表达式的值不相等时返回真,否则返回假。

扩展资料

C语言运算符号的种类:

1、算术运算符:

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2、关系运算符:

用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3、逻辑运算符:

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4、位操作运算符:

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5、赋值运算符:

用于赋值运算。分为简单赋值(=)、复合算术赋值(+=、-=、*=、/=、%=)和复合位运算赋值(&=、|=、^=、>>=、<<=)三类共十一种。

6、条件运算符:

这是一个三目运算符,用于条件求值(?:)。

7、逗号运算符:

用于把若干表达式组合成一个表达式(,)。

8、指针运算符:

用于取内容(*)和取地址(&)二种运算。

9、求字节数运算符:

用于计算数据类型所占的字节数(sizeof)。

10、特殊运算符

有括号()、下标[]、成员(→,.)等几种。

参考资料来源:百度百科:c语言运算符号

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02
c语言中i=!a的意思是将a取非的值赋值给i。
!作为单目运算符的意思是取非,如!真=假,!假=真。C语言中一般情况下0表示假,非0表示真。
另外值得注意的是=,==和!=的区别,=是赋值运算符,即把=右侧表达式的值赋值给左侧的变量;==是逻辑等于运算符,当两侧的表达式的值相等时返回真,否则返回假;!=是逻辑不等于运算符,当两则表达式的值不相等时返回真,否则返回假。
第2个回答  推荐于2017-09-02
!a 是一个逻辑非表达式,当a值为0时,!a的值是1,否则是0。
那么就可以解释这个 i = !a 表达式了:对 i 赋值,其值为!a。追问

!a是不是代表a是假的

追答

!a 不是代表a是假的,是对a做逻辑非处理,a如果是0,那 !a 就是1,a如果是非0值,那 !a就是0。

本回答被提问者采纳
第3个回答  2013-08-29
i是否等于非a,如果a = 0,则等同于 i = 1;如果a!=0,则等同于 i = 0
第4个回答  2013-08-29
int main()
{
int i;
int a = 0;
i=!a;
printf("%d ",i);
a = 6;
i = !a;
printf("%d\n",i);
return 0;
}

gcc编译后结果为 1 0
可见先将a看做bool类型进行!(逻辑非)运算,结果为真(1)或假(0)
相似回答