若x为int类型,请写出与!x等价的C语言表达式(x=0)?,为什么x=0?

如题所述

应该是x==0
!x做的其实就是与0比较,看下面的代码
int a,b=1;
a=!b; //a=0
翻译成汇编代码:
movl $1, -8(%ebp) #设置b=1
cmpl $0, -8(%ebp) #b与0比较
sete %al #若b=0则产生中间变量1否则产生0
movzbl %al, %eax #和上面一句一起产生作用呢

从上面汇编代码可以看出!b其实就是和0比较
懂了记得给分哦^_^
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-27
你说的是判断语句x==0吧?分析如下:
!x:如果x非0,那么!x=0,如果x为0,那么!x=1
x==0:如果x非0,那么x==0判断为假,值为0,如果x=0,那么x==0为真,值为1
由上可知,两种表示法对x的判断效果是一样的,即等价
第2个回答  2013-01-27
C里有隐式转换,但x为int,是可以当成bool值使用,会自动转换。规律是:当x=0时 为false x为非零值,则为true
分析一下,这个语句
x==0 从int角度分析,如果x为0 则结果 true
!x 这个表达式可以写成!((bool)x)x先转换为bool值,x为0,套用bool转换规律,即为false,而!(false)即为true 非零结果自己分析

所以得到两个在逻辑判断上等价
第3个回答  2013-01-27
等于0代表假,非零代表真

若x为int类型,请写出与!x等价的C语言表达式(x=0)?,为什么x=0?
应该是x==0 !x做的其实就是与0比较,看下面的代码 int a,b=1;a=!b; \/\/a=0 翻译成汇编代码:movl $1, -8(%ebp) #设置b=1 cmpl $0, -8(%ebp) #b与0比较 sete %al #若b=0则产生中间变量1否则产生0 movzbl %al, %eax #和上面一句一起产生作用呢 ...

若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表 ...
当x不为0时,x==0条件表达式的值就是0(因为条件不成立)当x是0时,x==0条件表达式的值就是1(因为条件成立)判断条件!x(!是逻辑非运算,与算术非不一样)当x不为0时,!x表达式的值就是0(对非0的数进行逻辑非操,结果作为0)当x是0时,!x表达式的值就是1(对0进行逻辑非操,结果作...

若x是int 类型,与逻辑表达式!x 等价的关系表达式是
int x;x=0时,!x=1;x=1时,!x=0;假设1,x==0与!x等价 x=0时,0==0,值为真(1;x=1时,1==0,值为假(0;假设1,x==1与!x等价 x=0时,0==1,值为真(0;x=1时,1==1,值为假(1;由此看来假设一 x==0正确

C语言的一道题 若X为INT类型,则下面与逻辑表达式!X等价的C语言关系表 ...
==0是值为0,x=0则表示为假, 在c语言中,=是赋值的意思,而不是我们数学中的等于号,而且运算时等于号是==。 一般真假判断运用于条件语句,如if()之内的

求2011年3月c语言计算机二级考试题库下载 笔试加上机 和公共基础 我邮 ...
5.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式 x==0 。第六章 循环控制一 单项选择题1.下面程序段的运行结果是( C )。int n=0;while(n++<=2);printf(“%d”,n);A) 2 B) 3 C) 4 D) 有语法错2.设有程序段:t=0;while(printf(“*”)) {t++; if(t<3) ...

C语言的几个问题 关于逻辑运算符!和switch语句的?大家回答一下_百度...
与=连用表示不等于,n!=-1表示n不等于-1 (2)若x为int类型,!x与什么C语言关系表达式等价?网上都说是与x==0等价,不一定与x==0等价 int型也包含0,所以x=0时,表达式与x==1等价 x=其他整数时,表达式与x==0等价 (3)关于switch语句的选择题 若有定义:float w; int a,b;则合法...

!x在c语言中是什么意思
是一个控制语句,直到x=0才停止循环,!x是求反的意思,只要x值是零才成立。!x的意思就是x!=0 当X=0时执行while循环 !即取反,当X!=0时不执行 !=组合在一起是逻辑运算符“不等于”!x--这个表示对x作“非”运算。

c语言,,!x与x!分别表示什么意思
c语言中只有!x没有x!,!x的意思就是x!=0。!x的意思就是x!=0;当X=0时执行while循环;!即取反,当X!=0时不执行;若x=0,则!x非零;若x不等于零,则!x=0;一般用if(!x)来做判断式。

C语言三目运算符怎么用
C语言三目运算符用法:对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e...

2018年自学考试《C语言程序设计》模拟试题【四篇】
(15)以下非法的赋值语句是___。A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;(16)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b\/b的值是___。A) 6.500000 B) 6 C) 5.500000 D) 6.000000 (17)已知i、j、k为int型变量,若从键盘输入:1,...

相似回答