我们知道,在C 语言中经常使用 诸如 if(表达式){} ,while (表达式) {} 形式的判断语句,当表达式为真时执行 {} 中的函数体,但是当表达式为赋值表达式时怎么判断该表达式为真还是为假?或者当表达式为逗号表达式式又该怎么使用?

记住一个原则:C语言赋值表达式所代表的值就是被赋值变量最终被赋予的值。

以下测试代码可以证明以上观点:

View Code

 1 #include <stdio.h>
 2
 3 int main(int argc, const char *argv[])
 4 {
 5     int i;
 6     printf("the value is %d\n", i = -1);
 7     printf("the value is %d\n", i =123);
 8     printf("the value is %d\n", i = 0);
 9     return 0;
10 }

那么以下代码的结果就很好理解了!

 1 #include <stdio.h>
 2
 3 int main(int argc, const char *argv[])
 4 {
 5     int i;
 6     //当赋值为0时赋值表达式代表的逻辑值为假,所以下列语句不会执行
 7     if (i=0) {
 8         printf("i=0\n");
 9     }
10     //当赋值为非0时赋值表达式代表的逻辑值为真,所以下列语句会执行
11     if (i=1) {
12         printf("i=1\n");
13     }
14     //当赋值为非0时赋值表达式代表的逻辑值为真,所以下列语句会执行
15     if (i=-1) {
16         printf("i=-1\n");
17     }
18     //逗号表达式代表的逻辑值为最后一个表达式的逻辑值,所以下列语句不会执行
19     if (i=1,i=0) {
20         printf("i=1,i=0\n");
21     }
22     //逗号表达式代表的逻辑值为最后一个表达式的逻辑值,所以下列语句会执行
23     if (i=0,i=1) {
24         printf("i=0,i=1\n");
25     }
26
27
28
29     return 0;
30 }

转载于:https://www.cnblogs.com/chenchenluo/archive/2012/05/05/2484867.html

C 语言中赋值表达式的返回的逻辑值相关推荐

  1. c语言中赋值表达式加上分号,C语言赋值表达式

    C语言赋值表达式 1. 赋值运算符 1:赋值运算符 赋值运算符的符号位"=",由赋值运算符组成的表达式称为赋值表达式.功能:先求出右边表达式的值,然后把此值赋给左边的变量. 格式: ...

  2. C/C++ 语言中的表达式求值

    转载地址:http://www.cnblogs.com/heyonggang/p/3340301.html 在此,首先向裘老师致敬! 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到 ...

  3. Java快速入门学习笔记3 | Java语言中的表达式与操作符

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  4. 裘宗燕:C/C++ 语言中的表达式求值

    裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发em ...

  5. c语言表达式和逻辑表达式是,C语言中关系表达式和逻辑表达式的值是什么

    C语言中关系表达式和逻辑表达式的值是什么? 关系表达式和逻辑表达式的值是布尔型:真或假(true or false),即0或1,但c语言没有布尔类型,以0为假,非0即真. 逻辑运算又称布尔运算.布尔用 ...

  6. c语言复合赋值表达式题目,C语言中复合赋值运算,表达式等知识.doc

    C语言中复合赋值运算,表达式等知识.doc 3.1复合赋值运算 算术运算符"+ - * / %"和赋值运算符"="结合起来,形成复合赋值运算符.如下所示:+= ...

  7. c语言中赋值的时候顿号的作用,简单总结C语言中的运算符优先级

    简单总结C语言中的运算符优先级 C语言中有很多运算符,除了四则运算,还有位运算.比较运算.逻辑运算.赋值运算等等,令人眼花缭乱的同时,优先级也让人头疼.通常建议在写代码的时候不用省略括号,但是并不是所 ...

  8. C++基础知识:C++语言中的表达式求值

    经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里, ...

  9. R语言中的表达式函数

    狭义表达式指表达式(expression)类对象,由expression函数产生:而广义的表达式既包含expression类,也包含R"语言"类(language).express ...

最新文章

  1. PennyLane | 用于量子计算机可微分编程的跨平台Python库
  2. 初识OSGI.NET插件框架
  3. iPhoneUI元素的大小
  4. 145. Binary Tree Postorder Traversal 二叉树的后序遍历
  5. JavaScript基础学习(七)—BOM
  6. 深入理解InnoDB(8)—单表访问
  7. python 使用pexpect实现自动交互示例
  8. 2个oracle文件导入报错处理
  9. 1w存银行一年多少利息_2020年,在中国邮政储蓄银行存20万,一年能拿到多少利息?...
  10. 云服务和硬件成微软业绩新增长点
  11. Java System.arraycopy()方法示例
  12. r语言如何下载carzip包本地安装_R语言中如何在Mac下快速下载和安装包
  13. linux中的通配符指的是?
  14. Node+Mysql增删改查obj-to-sql,多条件查询
  15. 基于色彩调和的专题图自动生成系统
  16. python飞机大战实训报告200_飞机大战实训报告方案.doc
  17. 使用串口连接Arduino与树莓派开发板
  18. BUUCTF-千层套路(python脚本)
  19. ACfly的Ctrl_Attitude.cpp的代码(可以看到在角速度环和高度环用ADRC)
  20. 信息安全系统设计基础实验一—20135222胡御风20135215黄伟业

热门文章

  1. 联想无线网卡 linux驱动,ubuntu14.04手动安装博通官方无线网卡驱动时报错,
  2. php uncaught thrown,PHP异常详解
  3. 华为ap配置_Win10频发蓝屏,深度Deepin系统,调试华为AC和AP
  4. html 如何判断文本溢出,判断文本是否溢出
  5. Apache SparkStreaming 简介和编程模型
  6. innodb一页为什么要存储两行记录_innodb数据记录存储结构
  7. 【转载】Qt Creator 添加自定义注释
  8. 借用的对vue-cli配置对解析
  9. android启动---lk入口文件crt0.s解析
  10. BQ27510 电量计的校准 的 C语言实现