逗号表达式:是C语言中的逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,①从左往右逐个计算表达式②整个表达式的值为最后一个表达式的值

——百度百科

如果令x的初始值为1的话,++x与x++最终结果都是2,但在其过程中会有较大差异。(--x与x++同理)

在过程中:

++x是2(x位于++后是加完之后),过程中是2。

x++是1(x位于++前是加完之前),过程中是1。

我是这么记忆的,一下子就很有印象,但只有到真正去到题中实践理论,就会豁然开朗。

辨析一:

#include<stdio.h>
int main()
{int x=1,y=1,z=1;z=x++,y++,++y;printf("%d%d%d",x,y,z);return 0;
} 

大家首先看一下,z的最终结果是什么呢?

对于刚接触逗号表达式的同学来说,小编当时依据上面的①②两点,流程大概如下

流程1

流程2

在z=x++,y++,++y;z等于整个逗号表达式最后的值吗!在这个过程中y的结果是2,那z也是2咯,

最后x=2,y=3,z=2。简简单单咯~但这是错的,实际输入,得出的结果如下

吃了个大惊,怎么z等于1呢,追回源头,在哪出现过1呢!原来在流程1中x的过程结果是1,嗯?z不是等于逗号表达式最后的值吗!?

其实此处是优先级还没明白!在z=x++,y++,++y;中z=x++含有赋值运算符,其优先级要高于逗号运算符。逗号运算符的优先级是最小。此处相当于(z=x++),y++,++y;

如果要实现我们所想要的结果则只需变成z=(x++,y++,++y);

代码如下,结果如下

辨析二:

#include<stdio.h>
int main()
{int z=1;printf("%d\n",(z+=1,z+5,z++));//printf("%d",z);return 0;
} 

大家还是看一下,z的最终结果是什么呢?

大家看一下下面流程思路正确吗?

理论实践

吃惊+1,怎么跟我预想的相差5呢!

此处的z+5,并没有什么实际意义,并不是z+=5!其它的就是大致相同了。

那小伙伴知道z最后的结果吗?

#include<stdio.h>
int main()
{int z=1;printf("%d\t",(z+=1,z+5,z++));printf("%d",z);return 0;
} 

赶快理论实践吧!

希望对你有帮助,语言学习贵在坚持输入和输出!

C语言:逗号表达式(辨析)相关推荐

  1. C语言逗号表达式 - C语言零基础入门教程

    目录 一.C 语言逗号表达式简介 1.逗号表达式书写形式 2.逗号表达式计算结果 二.C 语言逗号表达式实战 1.逗号表达式的使用 2.逗号表达式与赋值表达式区别 三.猜你喜欢 零基础 C/C++ 学 ...

  2. c语言 逗号表达式,c语言逗号表达式的运算规则_后端开发

    c语言程序的调试方法_后端开发 c语言程序的调试方法:1.先进行人工检查,即静态检查:2.在人工检查无误后,再上机调试:3.改正语法错误得到可执行目标程序,运行程序,看结果是否符合预期:4.不符合预期 ...

  3. c语言 逗号表达式的作用,关于c语言逗号表达式的运算规则知识点

    c语言逗号表达式的运算规则 c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8. 逗号表达式用法: 当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一 ...

  4. c语言 表示逗号的字符串,c语言逗号表达式的运算规则

    c语言逗号表达式的运算规则 c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8. 逗号表达式用法: 当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一 ...

  5. c语言逗号表达式(C语言逗号表达式可以出现自身吗)

    C语言中逗号表达式的问题 逗号表达式的运算级最低,比赋值运算符级别还低. 所以 y=(x=a+b),(b+c); 先算x=a+b=6,再y=x=6:而后面的b+c不影响x和y的值. 所以最终x,y的值 ...

  6. C语言逗号表达式赋值、野指针成因、用户标识符、字符串赋值的几个概念

    目录 题目 背景概念梳理 逗号表达式 野指针成因 用户标识符 字符串赋值 解题过程 正确答案 整体代码 参考链接 题目 一.输出x及a的结果 int main(){int x,a;x = (a=3, ...

  7. C语言——逗号表达式

    一.基本知识 百度百科:"逗号表达式,是C语言中的逗号运算符,优先级别最低,它将两个及其以上的式子连接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值." 总结基本 ...

  8. C语言逗号表达式在for循环语句中的使用

    先直接举出逗号表达式一般的例题 #include <stdio.h> void main(){int a;printf("%d\n",(a=3*5,a*4,a+5)); ...

  9. qiu奇偶数c语言,C语言逗号表达式 .

    (a=3*5,a*4).a+5 应该是 (a=3*5,a*4),a+5 吧 逗号表达式注意两个基本知识: 1. 逗号表达式的运算顺序是从左向右运算 2. 逗号表达式的值取逗号中最右表达式的值 现在看( ...

  10. c语言赋值一个字母,c语言赋值后面有逗号 c语言赋值与逗号表达式问题

    C语言提供一种特殊放入运算符:逗号运算符 表达式1,表达式2 逗号表达式的分享解过程是: 先分享表达式1,再分享表达式2 整个逗号表达式的值是表达式2的值,如表达式"3+5,6+8" ...

最新文章

  1. linux arm 常用服务,ARM、linux常用服务器+交叉编译工具链
  2. SyncStudy Poster
  3. 计算机文献读后感,论文读后感
  4. mysqldump 常用备份选项,只备份数据或结构的方法
  5. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer...
  6. Outlook2016未读邮件怎么设置字体颜色
  7. 比较决策的收益(洛谷P2705题题解,Java语言描述)
  8. 腾讯笔试:把两个数和告诉A,积告诉B,求这两个数是什么
  9. 计算机与计算机视觉史话
  10. 简约通用工作总结ppt模板
  11. bootstrap popover弹框内容换行
  12. 基于51单片机WiFi温湿度远程控制
  13. 新手入坑GMSSL(二)GMSSL双证书生成
  14. mysql错误代码1064_如何解决mysql错误代码1064
  15. PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection阅读
  16. 中国哲学简史 读书笔记
  17. python3图片裁剪+转换pdf+压缩
  18. Number Guessing
  19. Matlab中的两种除法
  20. 区块链、通证与供应链风险管理适应性分析研究

热门文章

  1. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
  2. vim autoformat php,vim - 如何在VI中整理HTML文件的缩进?
  3. 微x模块怎么导入主题_模块
  4. 六级(2020/12-2) Text2
  5. 程序员的工资大概多少?
  6. c语言调用tuxedo步骤,c语言入门之BCB客户端tuxedo开发实例
  7. python3计算列表长度
  8. Python (python -m venv)命令创建虚拟环境
  9. java指令工具_jvm 指令工具 jcmd 命令(Java多功能命令行)
  10. 钉钉直播教学中遇到的26个常见问题解决方法