当C语言中if语句中的条件表达式为常量或赋值表达式时的意义,分别举例解释

如题所述

//我举个例子你就明白了
//赋值运算符=运算优先级是从右到左,然后看下面代码
int a,b;
b = (a=1);
//编译器编译得到如下代码:
mov DWORD PTR _a$[ebp], 1
mov eax, DWORD PTR _a$[ebp]
mov DWORD PTR _b$[ebp], eax
①a=1
②b=a
如此推断,(a=1)的值即a的值,而a的值为1

所以if(1)不用说了,非零成立.
那么if(a=1)也不用说了吧? 表达式的值是a,而a=1,相当于if(1),非零成立.

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-20
表达式正确的情况下,只要不等于0;if语句即成立,例如if(0) printf("aa");就不会输出aa如果是if(1>0)表达式即成立,即输入aa
第2个回答  2013-07-20
C语言中常量或赋值语句作为条件语句时:0表示false,!0表示true;
eg : int a=0; if(a){ } -->表示false,只要当a不为0时表示true
第3个回答  2013-07-20
比如这个,用常量可以做个无限循环。while (1){ //---------} 现在看不到它有什么意义,但在真正用的地方就有意义了。
第4个回答  2013-07-20
常量或赋值,只要值不为0,都是true,0为false

当C语言中if语句中的条件表达式为常量或赋值表达式时的意义,分别举例解 ...
非零成立.那么if(a=1)也不用说了吧? 表达式的值是a,而a=1,相当于if(1),非零成立.

c语言选择结构if()括号里面跟表达式 常数时的意思?有例题
if(0) -- 0 就是“假”。“假”执行 else{} if (x=y+z) -- 这里是赋值语句,不是表达式,所以总是得真。于是执行printf("+++++");if (x==y+z) 里面才是条件表达式

C程序中if的使用
if(表达式)语句①;else 语句②;先判断表达式的值,若表达式的值为非0(真),则执行语句①,否则,若表达式的值为0(假),执行语句②。例如:include<stdio.h>void main(){int n;scanf("%d",&n);if (n) printf("%d\\n",n);else printf("%d\\n",n+1);}样例1,输入:2 输出:2;...

c语言if语句问题。。。
所以if里面是一个赋值,赋值表达式的返回值就是所赋的值,所以if为真,并且a=12这样后,a被赋值为12 再执行a=a+1;b=b+1;就得到13;1了

c 语言if条件
if语句是判断括号里的条件是真还是假,C语言中0是假,非0就是真,因此if(4)意思就是如果4是真,就执行if的那句话,而if(a=5)意思是判断a=5是真还是假,这个表达式先把5赋值给a,再判断a的值是真还是假,如上类似,而if(a==5)则是判断a==5是不是真,这个表达式就是真的判断a和5是不...

问个问题,C语言的,关于if语句中条件判断是一个赋值语句问题。
就是真的,还会执行k=2。一般来说,if后面语句是禁止使用单等于号,也就是赋值号的,就是为了防止出错。980515024 这位回答的有错误。if(x=5)编译是不会报错的。如果是x=0,这个表达式的值就是0,也就是假的,就不执行后面的语句了。用什么软件编译无所谓,6.0还是dev还是vs08都行。

c语言中if语句条件为赋值语句
当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;}这个...

c语言 if(!x)中条件!x是什么意思
若X是“0”(为假),则“!x”就不是零(为真),则里面为真,进入if下的大{}。若X不是“0”(为真),则“!x”就是零(为假),则里面为假,跳过if下的大{}。在C语言中一般认为“0”是假,其他不是“0”的都是真,if()里面为真,则进入if下的大括弧{},为假,就跳过。

...undef ifdef ifndef endif line 的用法以及意义?最好带例子_百度知...
1. 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。2. 宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。3...

C语言中If(!x) y ++; 什么意思、特别是iF(!x)
if(x==y)是判断x与y是否相等,相等则为真,不等则为假 if(x=y)这个是把y的值赋给x,然后判断表达式x=y的值,C语言中,赋值表达式是有值的,它的值是赋值符号右边的值,即x=y的值是y的值,如果y的值为0,那么x=y为假,否则为真 一般来讲,编程过程中if(x=y)这种写法是错误的写法,...

相似回答