`

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

阅读更多
C语言逗号运算符和逗号表达式
http://www.vichx.com/post/c-2-4-3.html

c语言中逗号运算符和逗号表达式
http://blog.csdn.net/great_ghoul/archive/2007/09/10/1779768.aspx



引用

一、逗号运算符

在C语言中,逗号“,”的用法有两种:一种是用作分隔符,另一种是用作运算符。

在变量声明语句、函数调用语句等场合,逗号是作为分隔符使用的。

例如:

int a,b,c;

scanf('%f%f%f',&f1,&f2,&f3);

C语言还允许用逗号连接表达式。例如x=5.6,y=2.1,10+x,x+y这里用三个逗号运算符将四个算术表达式连接成一个逗号表达式。



二、逗号表达式

形式:表达式1,表达式2,表达式3,...,表达式n

例:

a=2*6,a-4,a+15;

当逗号作为运算符使用时是一个双目运算符,其运算优先级是所有运算符中最低的。逗号运算符的运算顺序是自左向右的,因此上述赋值语句的求值顺序为:先计算2*6并赋予a(结果是a=12),再计算a-4(只计算,不赋值),最后计算a+15(只计算,不赋值),最终以27作为整个逗号表达式的值。请注意,后面两个表达式的值仅作了计算,而并没有赋给a,所以a的值仍然为12。

有时候使用逗号表达式的目的仅仅是为了得到各个表达式的值,而并非要得到真个逗号表达式的值。

例:

t=a,a=b,b=t;

此逗号表达式的目的是实现变量a,b值互换,而不是使用整个表达式的值。

例:

由于逗号运算符的优先级最低,因此x=5+5,10+10与x=(5+5,10+10)的作用不同,前者是x被赋值为10,而整个逗号表达式的值为20;后者由于增加了一对括号 ,使10+10作为整个表达式的值并赋予变量x,因此x的值为20。

例:

逗号表达式(a=3*5,a*4),a+15 的运算顺序为:将3*5的结果15赋给变量a,再计算括号内的第二个表达式a*4的值,结果为60,该整数60虽然作为括号所构成的表达式的值,但是a的值仍然是15,因此最后计算a+15时,结果为30。

例:

int j=5;

a=(a=j+1,a+2,a+3);

该赋值语句的执行顺序为:先对a变量赋值6,再计算a+2得8,再计算a+3得9,最后将9作为整个逗号表达式的值付给变量a,使a重新赋值为9。如果将一对括号去掉,a的值为6。

例:

int x ,y;

y=(x=1,++x,x+2);

该赋值语句的执行顺序为:x被赋值为1,x自增1得2,再计算x+2得4,4作为整个逗号表达式的值付给变量y,因此y被赋值为4。





分享到:
评论

相关推荐

    辨析二级C语言之逗号运算符和逗号表达式.pdf

    在二级C语言的范畴中,逗号运算符和逗号表达式是两个重要的概念,它们在程序设计中扮演着不同的角色。逗号运算符用逗号","来分隔多个表达式,使得这些表达式可以按照从左到右的顺序依次进行求值,但整个表达式的值是...

    如何巧记C语言的运算符

    为了记忆优先级,可以采用“掐头去尾取中间”的方法,即去掉最高级别的初等运算符和最低级别的逗号运算符,剩下的就是单目、双目、三目运算符,以及算术、关系、逻辑、移位和赋值运算符,按照这个顺序进行记忆。...

    C语言的运算符与表达式.ppt

    C语言提供了多种运算符,包括算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符、强制类型转换运算符、分量运算符、下标运算符等。 算术运算符 算术运算符是...

    C语言运算符和表达式ppt课件.ppt

    本资源摘要信息涵盖了C语言运算符和表达式的知识点,包括运算符的概念、分类、优先级和结合性、算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、逗号运算符等。 一、运算符的概念 在C语言中,运算符是...

    第4章c语言(运算符和表达式).ppt

    例如,`z=x+(y>=0)`就是一个包含关系表达式和算术表达式的例子。 4.1.3 优先级与结合性 运算符的优先级决定了运算的顺序,例如,乘法和除法的优先级高于加法和减法。结合性则决定运算符与它左侧还是右侧的表达式...

    C语言基本运算符与表达式ppt课件.ppt

    C语言中,运算符和表达式是编程的基础,掌握运算符和表达式的使用是编程的关键。下面我们将详细介绍C语言中的基本运算符和表达式。 1. 运算符的分类 C语言中的运算符可以分为以下几种: * 算术运算符:+、-、*、/...

    C语言中的运算符和表达式

    7. **逗号运算符**(,):用于将多个表达式组合成一个表达式。例如,`(a = 1, b = 2)` 表示先执行`a = 1`,然后执行`b = 2`。 8. **指针运算符**:包括取内容(*)和取地址(&)。`*p` 表示获取指针`p`所指向的内容...

    C语言各运算符优先级及函数大全

    逗号运算符用于分隔多个表达式,例如表达式,表达式,…。逗号运算符的优先级最低,结合方向为左到右。 C语言中的运算符优先级是非常重要的基础知识。了解这些知识点可以帮助程序员编写正确、简洁的代码。

    C语言运算符和表达式PPT学习教案.pptx

    本文将对C语言的运算符和表达式进行详细的介绍,包括运算符的概念、分类、优先级和结合性、算术运算符、自增和自减运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、逗号运算符和条件运算符等。 一、引例 ...

    C语言数据类型,运算符和表达式教程

    C语言数据类型,运算符和表达式,熟悉关键字、标识符、常量、变量等术语; 掌握C语言的三种基本数据类型; 掌握几种常见的运算符(算术运算符、赋值...掌握几种常见的表达式(算术表达式、赋值表达式,逗号表达式)

    c语言运算符和表达式ppt课件.ppt

    表达式一般有算术表达式、赋值表达式、关系表达式、逻辑表达式、逗号表达式、条件表达式等表达式。 表达式书写的一般规则: * 表达式必须写在同一行上 * 只能使用圆括号 * 左右括号个数要相同 * 有多层括号时内层...

    7.6 逗号运算符 Project1.7z

    在C语言中,逗号运算符(`,`)被用于将多个表达式连接在一起,使得它们可以依次执行。每一个表达式都会被执行,而整个表达式的值则是最后一个表达式的结果。这个知识点对于理解和编写复杂的控制流程或初始化数组非常...

    C语言初学者入门讲座 第四讲 运算符和表达式

    逗号运算符用于将多个表达式分隔开,并按顺序依次计算它们,但只返回最后一个表达式的值。 C语言中还有一些特殊的运算符,例如用于取得变量地址的“&”,取得内容的“*”,以及用于计算数据类型占用字节数的...

    C语言运算符和表达式及测试代码

    2. 逗号表达式:`表达式1, 表达式2`,从左到右依次计算每个子表达式,返回最后一个子表达式的值。 三、测试代码 在学习了运算符和表达式后,编写测试代码是理解和掌握这些概念的最佳方式。你可以创建一系列函数,每...

    C语言的运算符与表达式及其值.pdf

    6. **逗号表达式**:由逗号分隔的多个表达式,最后一个表达式的值作为整个表达式的值。 三、表达式与值 每个表达式都有一个值,根据表达式的类型,这个值可能是数字、布尔值(真或假)、或者一个变量的新值。例如...

    对C语言中运算符的再认识.pdf

    逗号运算符用逗号分隔多个表达式,将多个表达式从左到右依次求值,整个表达式的结果为最后一个表达式的值。 指针访问运算符(*)用于解引用指针变量,即获取指针指向的变量的值。 括号运算符用于改变运算的顺序,...

    C语言 第3章 运算符与表达式

    逗号运算符(,)则用于连接多个表达式,整个表达式的值是最后一个表达式的值。 #### 指针与位操作 C语言中,指针运算符(& 和 *)用于处理内存地址和值,而位操作运算符则在二进制位级别上进行操作,这对于优化...

    C语言类型运算符与表达式PPT学习教案.pptx

    逗号运算符`,`用于串联多个表达式,最后一个表达式的结果作为整个逗号表达式的值。 此外,运算符有优先级和结合性。优先级决定了运算的顺序,而结合性规定了当两个运算符具有相同的优先级时如何组合操作。例如,...

    C语言运算符和表达式.ppt

    4. 逗号运算符(,)允许在一个表达式中执行多个操作。例如,(a = 5, b = 10)会先执行a = 5,然后执行b = 10,整个表达式的值为b的最后值。 5. 关系运算符(<, >, , >=, ==, !=)用于比较两个值,返回真(非零)或假...

    C语言类型运算符与表达式PPT课件.pptx

    - **逗号运算符**:`,`,用于串联表达式。 - **指针运算符**:`*`用于解引用,`&`用于获取地址。 - **求字节数运算符**:`sizeof`用于计算数据类型或表达式的字节数。 - **强制类型转换**:`(类型)`,用于转换...

Global site tag (gtag.js) - Google Analytics