美文网首页
逗号表达式

逗号表达式

作者: 苦瓜1512 | 来源:发表于2018-06-19 14:17 被阅读0次

1. 逗号表达式的一般形式

表达式1, 表达式2, ..., 表达式n

PS:

  1. 逗号运算符优先级最低
  2. 逗号运算符的结合性从左至右
  3. 逗号表达式的值等于最后一个表达式的值
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int a, b, c;
    a = (b=9,c=33);                                                                                                     
    printf("a=%d\n", a); 
    return 0;
}
=============================
a=33

real    0m0.010s
user    0m0.000s
sys 0m0.000s

请按 ENTER 或其它命令继续

若有以下程序段:
int a = 0, b = 0, c = 0
c = (a -= a-5), (a = b, b+3);
printf("%d, %d, %d\n", a, b, c);
执行后输出的结果是( )
A. 3,0,-10
B. 0,0,5
C. -10,3,-10
D. 3,0,3

答案:B 逗号运算符的优先级比赋值运算符的优先级低

  1. 第二条语句由逗号运算符连接两个表达式组成,第一个表达式为c=(a-=a-5),第二个表达式为(a=b,b+3)
  2. 逗号运算符的结合顺序为从左到右,先计算左边的表达式c=(a-=a-5)
  3. 左边表达式是一个赋值表达式,把表达式(a-=a-5)的值赋给变量c,需要先计算表达式(a-=a-5)的值
  4. 表达式(a-=a-5)-=的优先级比-低,先计算-=右边表达式的值,为0-5=-5,由此a-=a-5把变量a的值改变为5,表达式(a-=a-5)的值也为5
  5. 所以变量c的值为5
  6. 第二个表达式(a=b,b+3)由也是一个逗号表达式,左侧的赋值表达式把变量b的值赋给变量a,所以a = 0, b = 0,第二个表达式虽然有运算,但是运算结果没有保存,所以对三个变量的值没有影响
  7. 所以,变量a, b, c的值分别为0, 0, 5

相关文章

  • C语言学习 - 逗号运算符

    在C语言中,逗号运算符的功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式在使用gcc编译时,带...

  • 那些年C语言走过的坑

    一、逗号运算符 在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一...

  • 逗号表达式

    1. 逗号表达式的一般形式 PS: 逗号运算符优先级最低 逗号运算符的结合性从左至右 逗号表达式的值等于最后一个表...

  • 逗号表达式

    逗号运算符特性: 1.逗号运算符将两个以上的表达式用逗号联起来,2.计算过程为从左到右;3.整个逗号表达式会有一个...

  • C扩展:运算符与变量

    1. 逗号表达式 逗号用来连接两个表达式,并以右边的表达式的值为结果。 优先级:所有运算符中最低的 结合律:只左向...

  • C语言005 第五节课-逗号运算符2019-06-28

    前言:逗号运算符,逗号运算符是单目运算符,其功能是把两个表达式组成一个表达式,分别求表达式的值,最后一个表达式的值...

  • 3.5.1 花括号展开(Brace Expansion)

    助记定义 逗号分割序列:由逗号分隔的任意字符序列,其中至少包含一个非quoted逗号。序列表达式:“x..y”或“...

  • Javascript - 逗号和三目运算符

    在JavaScript中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式, ...

  • 逗号表达式

    初遇js逗号表达式 初次碰到逗号表达式,是在一次面试中的一道笔试题: 一眼望去,就是个for循环啊,仔细一看,怎么...

  • JavaScript 逗号表达式笔记

    #JavaScript 逗号表达式笔记 ##逗号操作符是多元操作符,可以在一条语句中执行多个操作 1.逗号操作符可...

网友评论

      本文标题:逗号表达式

      本文链接:https://www.haomeiwen.com/subject/hdpaeftx.html