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

 我来答
金牛咲
高粉答主

推荐于2019-10-18 · 关注我不会让你失望
知道小有建树答主
回答量:219
采纳率:100%
帮助的人:7.1万
展开全部

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

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

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

扩展资料

C语言运算符号的种类:

1、算术运算符:

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

2、关系运算符:

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

3、逻辑运算符:

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

4、位操作运算符:

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

5、赋值运算符:

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

6、条件运算符:

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

7、逗号运算符:

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

8、指针运算符:

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

9、求字节数运算符:

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

10、特殊运算符

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

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

wchyumo2011
推荐于2017-10-02 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2829万
展开全部
c语言中i=!a的意思是将a取非的值赋值给i。
!作为单目运算符的意思是取非,如!真=假,!假=真。C语言中一般情况下0表示假,非0表示真。
另外值得注意的是=,==和!=的区别,=是赋值运算符,即把=右侧表达式的值赋值给左侧的变量;==是逻辑等于运算符,当两侧的表达式的值相等时返回真,否则返回假;!=是逻辑不等于运算符,当两则表达式的值不相等时返回真,否则返回假。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhenimei100
推荐于2017-09-02 · TA获得超过921个赞
知道小有建树答主
回答量:586
采纳率:0%
帮助的人:362万
展开全部
!a 是一个逻辑非表达式,当a值为0时,!a的值是1,否则是0。
那么就可以解释这个 i = !a 表达式了:对 i 赋值,其值为!a。
追问
!a是不是代表a是假的
追答
!a 不是代表a是假的,是对a做逻辑非处理,a如果是0,那 !a 就是1,a如果是非0值,那 !a就是0。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bdad0e7
2013-08-29 · 超过26用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:57.1万
展开全部
i是否等于非a,如果a = 0,则等同于 i = 1;如果a!=0,则等同于 i = 0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beyondpf88
2013-08-29
知道答主
回答量:6
采纳率:0%
帮助的人:3.2万
展开全部
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式