c语言中 i=!i 是什么意思啊

Python0174

c语言中 i=!i 是什么意思啊,第1张

!是C语言的逻辑非函数。

!a的运算规则为:

1 a如果为0,结果为1;

2 a如果不为0,结果为0。

于是i=!i的作用就是,如果i非0,则i值赋值为0,否则i值赋值为1.

i=!i与i=(i==0)效果相同。

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

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

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

扩展资料

C语言运算符号的种类:

1、算术运算符:

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

2、关系运算符:

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

3、逻辑运算符:

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

4、位操作运算符:

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

5、赋值运算符:

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

6、条件运算符:

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

7、逗号运算符:

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

8、指针运算符:

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

9、求字节数运算符:

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

10、特殊运算符

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

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

楼主只要弄清楚:运算符的分类就一切OK了。

标准C里的运算符大致分为:数值运算符、比较运算符、位运算符。

== 就属于比较运算符,顾名思义,是要比较==两边的数值是否相等。

如:i==0 意思就是i的值是不是等于0,等的话就为TRUE在C中用1表示相等,不等则为FALSE在C 中用0表示。