精华内容
下载资源
问答
  • c语言逗号表达式的运算规则 c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8。 逗号表达式用法: 当顺序点用,结合顺序是从左至右,用来顺序求,完毕之后整个表达式的是最后一个表达式的。 ...
  • C语言逗号表达式

    万次阅读 多人点赞 2018-08-14 12:36:14
    c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,(a=3*5,a*4)...

    原文地址:https://blog.csdn.net/dw_css/article/details/58709447

    c语言提供一种特殊的运算符逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,(a=3*5,a*4)的值是60,原因在于赋值运算优先级高于逗号表达式。

    逗号表达式的要领:

    1.从左到右逐个计算;

    2.逗号表达式作为一个整体,它的值为最后一个表达式的值;

    3. 逗号表达式的优先级别在所有运算符中最低。

     

    main()

    {

    int x,y,z;

    x=y=1;

    z=x++,y++,++y;

    printf("%d,%d,%d\n",x,y,z);

    }

    [A]2,3,3 [B]2,3,2 [C]2,3,1 [D]1,1,1

    解析:

    x和y的值经过自增以后分别为2和3,D可以排除。剩下3个选项选择什么呢?

    如果是(x++,y++,++y)实际上可以看成(1,1,3)整个逗号表达式的值应该是3,那么选A。

    如果是(x++,++y,y++)实际上可以看成(1,2,2)整个逗号表达式的值应该是2,那么选B。

    但这是错的,这儿还有赋值运算符。赋值运算符的优先级是14,而逗号表达式的优先级是15,也就是说上面的表达式中应该等价于这样的结合:(z=x++),y++,++y;如果这样写的话,则答案很清晰,为:2,3,1

    正确答案选C。

    展开全文
  • c语言逗号表达式

    千次阅读 2020-02-05 20:37:45
    最后一个表达式就是整个逗号表达式 如下图 事实上我觉得逗号表达式就是把多个表达式串联在一起(可以减少代码行数) 其实没啥用 这里建议大家自己练一下 记得加括号因为逗号表达式的优先级是最低的 如下图 ...

    如果你想简单的了解一下逗号表达式的话这里应该会有你需要的东西

    一般形式:(表达式1,表达式2,表达式3,……表达式n)
    从左到右依次求值
    最后一个表达式就是整个逗号表达式的值
    如下图
    

    在这里插入图片描述

    事实上我觉得逗号表达式就是把多个表达式串联在一起(可以减少代码行数)
    其实没啥用

    这里建议大家自己练一下
    

    记得加括号因为逗号表达式的优先级是最低的
    如下图
    在这里插入图片描述

    如果不加括号它就会直接赋值如下图

    在这里插入图片描述

    展开全文
  • 【原创】C语言逗号表达式 在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的分别结算,整个表达式的是最后一个表达式的。 示例代码:int main(int argc, char* argv[]) { int i, j; ...
    
    
    【原创】C语言逗号表达式
    
    
    
        在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,整个表达式的值是最后一个表达式的值。
        示例代码:
    int main(int argc, char* argv[])
    {
    	int i, j;
    	i = (10-2, 3*4);
    	j = 10-2, 3*4;
    
    	printf("i = %d\n",i);
    	printf("j = %d\n",j);
    
    	return 0;
    }
    /* 输出结果
    i = 12
    j = 8
    */
          猜一下下面代码结果是怎样的:
    
    int main(int argc, char* argv[])
    {
    	int i, j, k;
    	i = 0, j = 1, k = 2;
    	
    	printf("i = %d, j = %d, k = %d\n", i, j, k);
    	
    	i = (j++, k++);
    	printf("i = %d, j = %d, k = %d\n", i, j, k);
    	
    	while (i = (rand()%100), i != 60)
    	{ 
    		printf("i is %d, tring again...\n", i);
    	}
    	
    	printf("\nGuess what? i is %d!\n", i);
    	return 0;
    }
    /*输出结果
    i = 0, j = 1, k = 2
    i = 2, j = 2, k = 3
    i is 41, tring again...
    i is 67, tring again...
    i is 34, tring again...
    i is 0, tring again...
    i is 69, tring again...
    i is 24, tring again...
    i is 78, tring again...
    i is 58, tring again...
    
    Guess what? i is 50!
    */


    转载于:https://www.cnblogs.com/gengzj/p/3827102.html

    展开全文
  • C语言逗号表达式

    2020-08-03 15:55:18
    本文介绍了C语言逗号表达式的使用以及原则。
  • C语言逗号运算符和逗号表达式

    千次阅读 2017-02-07 00:35:20
    c语言中逗号运算符和逗号表达式  C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:  3+5,6+8 称为逗号表达式,又称为“顺序求运算符”。逗号表达式的一般形式为  表达式1...

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



     C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:

      3+5,6+8

    称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为

        表达式1,表达式2

    逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值

    例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式

      a=3*5,a*4


    对此表达式的求解,读者可能会有两种不同的理解:一种认为“3*5,a*4” 是一个逗号表达式,先求出此逗

    号表达式的值, 如果a的原值为3,则逗号表达式的值为12,将12赋给a, 因此最后a的值为12。另一种认为

    :“a=3*5”是一个赋值表达式”,“a*4”是另一个表达式,二者用逗号相连,构成一个逗号表达式。这两者

    哪一个对呢?赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5(也就是把“a=3*5”作为一个表达式)。

    经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。


      一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=3*5,a*4),a+5 先计算出a的值

    等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。

     逗号表达式的一般形式可以扩展为



     表达式1,表达式2,表达式3……表达式n

      它的值为表达式n的值。

      逗号运算符是所有运算符中级别最低的。因此,下面两个表达式的作用是不同的:

      ① x=(a=3,6*3)
      ② x=a=3,6*a

      第①个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。第②个是逗号表达式,它包括

    一个赋值表达式和一个算术表达式,x的值为3。

      其实,逗号表达式无非是把若干个表达式“串联”起来。在许多情况下,使用逗号表达式的目的只是想

    分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句

    (for语句)中.

      请注意并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如

      printf("%d,%d,%d",a,b,c);

      上一行中的“a,b,c”并不是一个逗号表达式,它是printf函数的3个参数,参数间用逗号间隔。
    如果改写为

      printf("%d,%d,%d",(a,b,c),b,c);

    则“(a,b,c)”是一个逗号表达式,它的值等于c的值。括弧内的逗号不是参数间的分隔符而是逗号运算符。

    括弧中的内容是一个整体,作为printf函数的一个参数。


    C语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而c使用灵活,适应性强


    展开全文
  • 逗号表达式取最后面一个式子的( ,号运算符从左至右)eg1:#include <stdio.h>int main() { int a = 100; int b = 200; int c = 500 printf("%d", (a,b,c)); } 结果500eg2:#include <stdio.h>int main() {
  • C语言——逗号表达式

    2021-01-11 21:30:45
    C语言——逗号表达式 一、什么是逗号表达式     简单来说就是,逗号表达式C语言提供一种特殊的运算符——逗号运算符。它的优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算...
  • 其一般形式为:表达式1,表达式2其求过程是分别求两个表达式的,并以表达式2的作为整个逗号表达式。【例】main() {int a=2,b=4,c=6,x,y;y=(x=a+b),(b+c);printf("y=%d,x=%d",y,x);}本例中,y等于整个逗号...
  • C语言-逗号表达式

    2016-09-07 15:15:40
    C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:  3+5,6+8 ...整个逗号表达式是表达式2的。例如,上面的逗号表达式“3+5,6+8”的为14。又如,逗号表达式  a=3*5,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,442
精华内容 12,176
关键字:

c语言逗号表达式的值

c语言 订阅