c语言中if语句条件为赋值语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中if语句条件为赋值语句相关的知识,希望对你有一定的参考价值。

如m=0,m=1 是不是都会执行if后面语句,(m=0)&&(n=1) (m=1)&&(n=1)结果是一样的吗,如果不是,那赋值语句结果都为真这句话怎么理解

当if语句中的条件为赋值语句时,实际上是将赋值后的结果与0进行比较。比如下面的代码:

#include <stdio.h>
int main()

int a;
if (a = 0) printf("hello world\\n");
return 0;

它等价于:

#include <stdio.h>
int main()

int a = 0;
if (a==0) printf("hello world\\n");
return 0;

这个过程可以通过vc6.0的反汇编代码详细看到。

一条mov赋值指令,一条cmp比较指令,比较的对象是0和a的值。

参考技术A 赋值语句不一定都是真的
&& 只要前面为假~~~后面的不执行
(m=0)&&(n=1) 假 m=0的值为0
(m=1)&&(n=1) 真

字符串的处理~~经常用这个原因来~~~作为结束条件
while(*p++=*q++)
结束条件就是'\0'赋值给*p
表达式的结果是0就是假
参考技术B 只有 && 两边都是真值 它的值才为真,

这里 , m = 0 , m= 1 为初始值的时候

只有 m == 0 && m == 1 才是真值 其他都不会执行if下面的语句追问

不是说赋值语句都为真吗,那if(m=1)和if(m=0)应该都会执行后面语句啊

追答

对 ,我刚才说的是== 如果是赋值 不管赋什么值它都是正确的

追问

我怎么看到网上说只有赋值为0是为假,赋值为其他的时都是真啊 那么if(m=0)后面的应该不执行吧

追答

0是特殊的一个,只要是赋值为非0 ,它就是真的,是0,就是假的

本回答被提问者采纳
参考技术C 对于你的&&运算来说一样的

ifelse语句if条件可以为空吗

if ()else() while() do{}while()后面括号都可以为空吗?
推荐内容
if ()else() while() do{}while()后面括号都可以为空吗?
展开
来自匿名用户的提问
回答
最佳答案
就上面的问题而言,只有else 及后面的括号可以为空。do后面的花括号也可以为空,但是要有分号的。
关于程序,请看图:
2017-10-10
抢首赞

相关搜索
为了避免在嵌套的条件语句ifelse对以下说明语句int a 10为了避免嵌套continue语句的作用是c语言中逻辑真等价于if语句的选择条件是合法的数组定义是函数必须有返回值吗
do+while语句中do后面的大括号里面为空是甚么意思
赞0答1
可以搜狗百科
可以(kě yǐ),汉语词语。指能够发挥某种功能,《诗经·陈风·衡门》曾提及:“衡门之下,可以栖迟。”也指事物、事情不坏、尚好等等。
戴口罩上体育课会引发猝死吗?
赞398
美国在2019年7月曾有不明原因呼吸系统疾病爆发吗?
赞310
杭州女子穿吊带进地铁被拦是真的吗?
赞1004
戴N95口罩上体育课更安全吗?
赞380
核酸和抗体检测会遇到假阳性和假阴性吗?
赞261
2020年还有哪些法定假期?
赞212
一男子活埋79岁瘫痪母亲,原因是什么?
赞1448
正在加载...
参考技术A ifelse语句if条件不可以为空,这是一道计算机编程语句题。

以上是关于c语言中if语句条件为赋值语句的主要内容,如果未能解决你的问题,请参考以下文章

if 语句中的赋值语句如何作为条件?

C语言中赋值语句的语法是怎样的

c语言while语句

C语言赋值语句执行后返回数值不?

用SQL语句编写:定义两个变量并赋值,要求输出较小的那个值。

C语言求指点,程序执行判断语句与赋值语句时,哪个耗时更长? 比如:if(a>b) a=b; 是if