C语言中的逗号的作用,C语言逗号运算符和逗号表达式基础总结

逗号运算符的作用:

1,起分隔符的作用:

定义变量用于分隔变量:int a,b

输入或输出时用于分隔输出表列 printf("%d%d",a,b)

2,用于逗号表达式的顺序运算符

语法:表达式1,表达式2,...,表达式n

表达式的值:表达式n的值

优先级:最低

运算顺序:左->右

例题总结

错题1

if(a>b, a>c) max=a;

else max=0;

t=(a=a+3,a/b,b+1,++c);

printf() 输出 max 和 t 的值

max=3, t=2

解析:因为if语句中是一个逗号表达式,所以先计算a>b,结果为0,需要注意到这里的逗号是运算符而不是分隔符,然后再计算a>c,结果为1。进入条件中,把a的值3赋值给max;然后计算t的值,需要注意到这里的逗号是运算符而不是分隔符a+3赋值给a,a=6,然后a/b得到1,然后b的值为4,++c先自增然后赋值,结果为2。

错题2

计算下面逗号表达式的值:

(a=2*4,a*5),a-3

在这个逗号表达式中,先计算括号内的值,从左到右,a被赋值为8,然后a*5是这个含括号的逗号表达式的值,然后在计算括号外的a-3,a-3等于5,所以说这个式子的结果为5.

注意分清一般表达式和赋值表达式。

错题3

这两个题目都是自增运算符与自减运算符和逗号运算符结合的题目,在测试中错了两道,

以i++为例:自增运算符的具体含义是:

1. 先进行i与其他运算符的运算

2.再执行i=i+1

C语言中的逗号的作用,C语言逗号运算符和逗号表达式基础总结_第1张图片

答案:D

解析:里面含有顺序运算符,首先计算a=3,然后b=a--,a的值先赋值给b,表达式的值为b,也就是x=b,然后a自减为2,所以x,a,b的值分别为3,2,3

2acde919684437a8d51dab70ccb19364.gif

C语言中的逗号的作用,C语言逗号运算符和逗号表达式基础总结_第2张图片

答案:C

解析:先进行赋值 x=0 ,然后x+10,接着是x++,x先进行其他操作,也就是逗号运算符,然后再进行自增,所以结果为x=0.0

c语言中逗号运算符和逗号表达式

原文:c语言中逗号运算符和逗号表达式 C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”.逗号表达式的一般形式为 表达式1 ...

C语言逗号运算符和逗号表达式

在C语言中逗号","也是一种运算符,称为逗号运算符. 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式.其一般形式为:表达式1,表达式2 其求值过程是分别求两个表达式的 ...

C++逗号运算符与逗号表达式

C++将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句.循环语句等)中.这是C++语言灵活性的一种表现. 请注意,用cout语句输出一个 ...

C语言中关于逗号运算符的理解

在C语言中运算符有很多,包括算数运算符.关系运算符.赋值运算符.位运算符.逻辑运算符.三目运算符.sizeof运算符.逗号运算符等等,那今天我们就重点来给大家讨论一下关于逗号运算符的一些运算规则. 首 ...

【学习笔记】【C语言】逗号运算符

逗号运算符主要用于连接表达式,例如: int a = 9; int b = 10; a = a+1 , b = 3*4; * 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为: 表达式1, ...

JS逗号运算符的用法详解

逗号运算符的用法详解 注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScri ...

js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)

Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...

C++算术运算符与算术表达式

基本的算术运算符 在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍. 常见算数运算符 运算符 说明 举例 + 加法运算符,或正值 ...

3014C语言_运算符

第四章 运算符 4.1 分类 C语言的运算符范围很广,可分为以下几类: 1.算术运算符:用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余(%).自增(++).自减(--)共七种. 2 ...

随机推荐

iOS之判断字符串是否为空字符的方法

-  (BOOL) isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ...

C++拼接字符串

例如: 在"/data/misc/media/out.yuv"后面添加序号操作,并输出在path char path[128] = {0}; int Num=this->mN ...

js继承---类继承法

//父类 function Aaa(name,sex,inter){ this.name = name; this.sex = sex; this.inter = [1,2,3]; } Aaa.pro ...

Max Min

def main(): n = int(raw_input()) k = int(raw_input()) k_arr = [] min_dif = 9999999999 # 根据input要求,规定 ...

创建简单的响应式HTML5模版

创建简单的响应式HTML5模版 HTML5目前发展势头良好,已经逐渐得到大部分浏览器不同程度的支持.许多web开发者也已经学习到了不少关于HTML 5的基础知识并开始试图使用HTML 5制作网页.与此 ...

Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

hibernate框架搭建

hibernate框架的搭建步骤: 1.导包 2.创建数据库准备表 3.书写orm元数据(对象与表的映射配置文件) 4.书写配置文件 5.书写代码测试 一.导包: 创建web-maven工程添加hib ...

cleos

[cleos] 1.在.bashrc中加入以下代码,方便直接使用 cleos,7777是nodeos端口,5555是keosd端口. alias cleos='docker exec -it eosi ...

Srorm并发机制

一:介绍 1.运行组件 2.并发度 就是executor数量 executor线程是物理线程 task是执行线程 二:增加并发度 三:Worker层次 1.worker工作进程上 各个Spout组件. ...

撩课-Web大前端每天5道面试题-Day31

1.web storage和cookie的区别? Web Storage的概念和cookie相似, 区别是它是为了更大容量存储设计的. Cookie的大小是受限的, 并且每次你请求一个新的页面的时候C ...

你可能感兴趣的:(C语言中的逗号的作用)