C 逗号运算符 C 语言中逗号表达式的规则是什么?

发布于 科技 2024-08-05
28个回答
  1. 匿名用户2024-01-31

    等号优先于逗号。

    因此,上述等式理解为:a = 15;

    此时,a 等于 15,15*4 等于 60,但未赋值 a。 因此 a 是 15。

    为了改变计算顺序,可以改写为:a = (3*5, a*4),那么既然a等于0,0*4等于0,然后把值赋给a,所以a是0。

    不知道是哪本书说a=3*5,a*4等于60,如果要得到60的值,就得这样改写:a=(a=3*5,a*4)。 是你没有读完整本书吗? 如果这本书是这样写的,那么作者的技巧就值得怀疑了。

  2. 匿名用户2024-01-30

    房东您好,书上说(a=3*5,a*4)这个十字架是60;

    这里请大家了解数运算中方程的值,以及元素的值。

    这里 a=3*5 元素的值变为 15,然后 a*4 这里元素的值仍然是 15 并且没有改变,因为它没有被赋值,但这个公式的值是 60

    所以它应该像这样 b=(a=3*5,a*4) 并打印 b,然后结果是 60。

  3. 匿名用户2024-01-29

    我认为这是一个分号。

    尝试使用分号。

  4. 匿名用户2024-01-28

    a=3*5,a*4;这句话改成 a=3*5,a=a*4; 以上光计算,未赋值。

  5. 匿名用户2024-01-27

    C 中的逗号表达式从左到右依次为:k=3*2=6,k+2=8,表达式返回 8。

    逗号表达式用法:

    使用顺序点时,绑定顺序为从左到右,用于顺序计算,整个表达式的值为最后一个表达式的值。

    逗号表达式的要点:

    1)逗号表达式从左到右逐个计算。

    2)逗号表达式作为一个整体,其值是最后一个表达式的值(即表达式n)。

    3) 逗号运算符在所有运算符中具有最低的优先级。

    例如:int a1, a2, b=2, c=7, d=5; 第 1 行。

    a1=(+b,c--,d+3);第 2 行。

    a2=++b,c--,d+3;第 3 行。

    对于为 a1 赋值的 **,有三个表达式,用逗号分隔,所以最终值应该是最后一个表达式的值,即 (d+3) 的值,即 8,所以 a1 的值是 8。

    对于**给a2赋值,也有三个表达式,本例中的三个表达式分别是a2=++b,c--、d+3,(这是因为赋值运算符的优先级比逗号运算符高),虽然最终表达式的值也是8,但是b=4(当第二行**完成时, b=3,即当第三行**运行时,b的值为4),所以a2=4。

  6. 匿名用户2024-01-26

    int main()

    结果:值 = 8

    逗号表达式从左到右计算,但右边的数据值作为表达式值返回;

    1. k = 3*2 // k = 6;

    2.(6, k+4) 表达式返回 10,k 仍为 63(10, k+2) k 为 6,表达式返回 8

  7. 匿名用户2024-01-25

    逗号表达式的规则是先数左边,然后表达式的值是右边的值,所以先k=3*2=6,k+2=8,所以整个表达式的值是8我建议你看看C语法。

  8. 匿名用户2024-01-24

    在 C C++ 中,逗号表达式会产生逗号前面的部分,逗号后面的部分可以顺便理解完成的工作。

    在你的**。

    y=(x=a+b),(b+c);

    在这句话中,操作的顺序。

    1).x=a+b 给出 x=6

    2)b+c3)y=x=a+b=6

    所以结果是 y 和 x 都等于 6。

  9. 匿名用户2024-01-23

    逗号运算符按从左到右的组合顺序执行,然后取最右边方程的值作为返回值。 因此,这个表达式的计算过程如下:因为有一个括号运算符,所以先求值,逗号运算符从左到右求值k=3*2,其中k=6;然后计算k+4,此时k=10,返回; 还有另一个逗号运算符,它继续计算右边的 k+2,因为左边的方程已经计算完毕,并返回表达式 (k=3*2,k+4),k+2,值为 12。

    同样,由于 k 的末尾为 +2,因此 k 的最终值也是 12

  10. 匿名用户2024-01-22

    逗号表达式按右侧顺序计算。 首先赋值 k 6,然后赋值 k+4,请注意,此时它只是 k+4,并没有说 k=k+4,然后在括号外赋值 k+2,因为 k 仍然是 6所以最后,我们得到 6+2,也就是 8

  11. 匿名用户2024-01-21

    逗号运算符,计算后取右边的值。

    k=2*3=6

    好吧,错了。 以下是正确的。

  12. 匿名用户2024-01-20

    第一个 k = 6,k + 4 只有 10,k + 2 值是 8,因为好表达式的值是最后一个,所以它是 8

  13. 匿名用户2024-01-19

    1.用法: 1、使用顺序点时,组合顺序从左到右,用于顺序求值,整个表达式的取值为完成后最后一个表达式的取值。

    main()

    int a,s,d;

    s=2;d=3;

    a=12+(s+2,d+4);

    计算括号中的值:s+2=4,d+4=7;括号应为(4,7),括号中的值只能为最后一个,如果没有括号,则取第一个; a=12+7=19。

    x=(y=3,(z = y+2) +5);

    就是先把y赋值给3,把y递增到4,然后把4加到2,把结果6赋给z,再把z赋给5,最后把x赋给结果值11。

    2. 注意:逗号运算符 ( 是 C 语言运算符中优先级最低的运算符。

    2.其他用途:

    1. 申请:

    int i;int j;

    for(i=0,j=0;i<5;i++,j++)

    2.分隔符时:int i,j;

  14. 匿名用户2024-01-18

    逗号运算符通常与一组表达式相关联。

    其运算的结果是 6

    换句话说,无论逗号算法对多少个表达式进行操作,它返回的最终结果都必须是最后一个表达式的结果。

  15. 匿名用户2024-01-17

    首先,重要的是要了解逗号运算是多变量运算,其整个值是最后一个表达式的值,在这种情况下,该值是从左到右计算的。

    在上面的程序中,首先找到x=a+b+z的值,而z的值根本没有赋值,所以结果不会出现x,y等于4! 也就是说,您的程序有问题。

    如果按照上述操作顺序改为 y=(z=a+b), (x=a+b+z),则结果为 x=12, y=12;

    你可以看看它!

  16. 匿名用户2024-01-16

    逗号表达式有两个用途。

    逗号前后的语句会跑到,例如(u=5,k=0),执行后u的值为5,k的值为0

    整个表达式的值=最后一句的值=(k=0)=0,即f的值为0

  17. 匿名用户2024-01-15

    0 逗号运算符的表达式值为最后一个表达式的值,最后一个为 k=0;

    实际上,它是 0

  18. 匿名用户2024-01-14

    等。。 我弄错了。 还需要了解 Shenma 是一个逗号表达式。

    我和 uuyyhhjj 和 delta Charlie 说了同样的话,但我们都弄错了。 您可以自己运行我们的所有示例,看看是否是这种情况。 我觉得以下几点应该是我的正确理解。

    逗号表达式在所有运算符中具有最低的优先级,并且低于赋值运算符。 它的作用是计算每个表达式,并使用最后一个表达式返回的值作为逗号表达式的值。 (不遗余力)。

    就像你说的那个,如果是的话。

    x=200,500;

    不带括号),x 等于 200,然后上面整个方程的值为 500。

    但是带括号,(200,500) 是一个单独的公式,它的值是 500,所以 x=(200,500) 在赋值 x 的末尾是 500

    举几个例子,x=(21,22,23,24,25);

    在这一个中,先数括号,计算后丢弃前 21 到 24,括号中的表达式值为 25。 之后,执行赋值操作,x 的值成为括号中表达式的值 25。

    如果编译。 int x;

    int a;

    x=(21,22,23,24,25);

    cout<<"x="<

    如果您有任何问题,请随时提问。

  19. 匿名用户2024-01-13

    它必须是 500,逗号运算符只将最后一个表达式的值作为整个语句的值。

  20. 匿名用户2024-01-12

    逗号运算符将最后一项的值作为整个逗号表达式的值。

  21. 匿名用户2024-01-11

    inta=3,b=4,c=5;

    c=(a+=a-=a),这里是两个单独的句子(b=a,c+2);

    a+=a-=a这个从右到左运行。

    a-=aa=0a+=a

    a=0c=a

    c=0,所以c=0

    b=ab=0

    C+2c 保持不变。

    不,有必要将最后一个括在括号中。

    例如,c=((a+=a-=a),(b=a,c+2));

    这是采取后者的那个。

  22. 匿名用户2024-01-10

    你的问题似乎写错了地方,应该是 a=(

    b,c--,d+3),这是“逗号运算符和表达式”的部分,“逗号运算符是从左到右计算的,整个逗号表达式的值是最右边表达式的值”。

    括号内是一个逗号表达式,a 采用逗号表达式的值。 所以答案是 a=8

    很专业,哦,给它领养。

  23. 匿名用户2024-01-09

    由逗号运算符组成的公式也是一个表达式,其值等于最右边表达式的值。

  24. 匿名用户2024-01-08

    逗号运算符可以将两个或多个表达式连接成一个表达式,称为逗号表达式。

    逗号运算符在所有运算符中具有最低的优先级,因此 x=(200,500) 首先是 (200,500),200 后跟 500,因此 x=500。

    如果表达式是这样的 x=(3+4,4+7),x 将以 4+7 结束,即 x=11。

  25. 匿名用户2024-01-07

    在类型 C 中,逗号可以用作操作表达式。

    例如,x=(x=1,x=x+1,x+2) 从左到右计算,相当于先将 x 赋值为 1,然后计算 x+1=1+1=2,最后计算 2+2=4,返回 4

    而你读的书可能根本没有涉及太多细节。

    当 x=(200,500,600) 时,x 先是 200,然后是 500,最后是 600,因为没有赋值操作,所以 200 和 500 被覆盖。

  26. 匿名用户2024-01-06

    作为参考,逗号可以理解为逗号表示一种顺序。

    比较以下两个表达式会更清楚:

    x = x + 10, x * 3;

    x = (x + 10, x * 3);

    假设 x 的初始值为 10

    对于第一个表达式,它等效于:

    x = x +10;

    x = x * 3;

    在这种情况下,x 为 (10 + 10) *3 = 60

    对于第二个表达式,x + 10, x * 3) 等价于:

    x + 10

    x * 3 所以它的返回值是 x * 3,即 10 * 3 = 30,所以此时 x 是 30

  27. 匿名用户2024-01-05

    逗号运算符 ( 是 C 运算符中优先级最低的,用于从左到右的顺序计算(最后一个逗号之后的表达式的值用作整个表达式的值)。

    下面是如何使用逗号运算符的示例:

    int a=3, b=5, c;c = a>b, a+b;运行后,c的值为0,因为逗号运算符的优先级低于赋值运算符,所以先将a>b(即0)的结果赋值给c,然后计算结果a+b(结果不保存),所以c=0c = (a>b, a+b); 运行后,c的值为8,因为括号的优先级高于赋值运算符,所以先计算括号中的表达式,结果是最后一个表达式的值,即a+b的值,所以c=8

  28. 匿名用户2024-01-04

    逗号运算符 ( 是 C 运算符中优先级最低的,用于从左到右的顺序计算(最后一个逗号之后的表达式的值用作整个表达式的值)。

    下面是如何使用逗号运算符的示例:

    int a=3, b=5, c;

    c = a>b, a+b;运行后,c的值为0,因为逗号运算符的优先级低于赋值运算符,所以先将a>b(即0)的结果赋值给c,然后计算a+b的结果(结果不保存),所以c=0

    c = (a>b, a+b);运行后,c的值为8,因为括号的优先级高于赋值运算符,所以先计算括号中的表达式,结果是最后一个表达式的值,即a+b的值,所以c=8

相关回答
30个回答2024-08-05

楼主不用头晕,以上就对。你的老师是对的。 >>>More

7个回答2024-08-05

SQL Server 数据中的运算符和表达式。

2个回答2024-08-05

说起来比较麻烦,但我似乎还是很快明白了。 举一个简单的运算符重载的例子。 两点的加法和减法是超载的。 >>>More

16个回答2024-08-05

请注意,大于 的反义词是小于或等于。

1、a、b、c只有大于60; >>>More

13个回答2024-08-05

符号是按位运算,即运算,0 & 1 = 0

这样的问题是将原始 = 0xabc 十六进制转换为二进制,即 1010、1011、1100 >>>More