C语言中a=2,!a 的值是多少

或者说是 !的作用是什么
2024-11-22 08:38:24
推荐回答(5个)
回答1:

a=2,!a 中有三个运算符号

1、 = 赋值运算符,如:a=5 表示将5存储到a中

2、 ,  逗号运算符,逗号前后为表达式,顺序运算返回最后一个表达式的结果,如: 

while( scanf("%d", &a), a>0 ) //读一个数,且a>0时循环,并不在乎scanf()函数的运算结果  scanf("%d", &a), a>0  中,操作两个表达式,但只返回a>0的运算结果

    ....
}

3、!  非运算 符,其返回值只有两个,1或0。 C中规定, 非0为1,非(非0)为0,如: !5 == 0    ,  !0 == 1  ,  !1 == 0

结合以上,a=2,!a 的运算过程为: 

a=2

!a ==0

返回0

回答2:

a=2,!a的值
这个问题,主要考了两个知识点
1)表达式求值顺序
2)逗号运算符的返回值

第一步 a=2 这个就是把2赋值给a
第二步 !a 这里是not运算符,因为a==2,所以!a就是0
第三步,逗号运算符的最后一个结果就是整个逗号表达式的值

因此整个表达式的值是0

回答3:

因为a=2>0, 非0的数真,0为假
!是逻辑非运算符,使原来的表达式真假对调,所以!a=0

回答4:

!a值为0,!的作用是取逻辑反,除0外所有数为逻辑真,0为逻辑假

回答5:

楼上正解!