首页 常识
您的位置: 首页 > 常识 >

逗号运算符怎么运算(逗号运算符及运算法优先级)

100次浏览     发布时间:2024-11-14 08:24:35    

1 基础语法

C语言中,逗号运算符(,)在C语言中是一种二元运算符,它用于连接两个或更多的表达式,并且从左到右计算这些表达式。逗号运算符的返回值是最后一个表达式的值。

逗号运算符的语法格式:

expression1, expression2, ..., expressionN

其中,每个expression可以是任何合法的C语言表达式,包括函数调用、赋值操作、算术表达式等。

#include <stdio.h>

int main() 
{
    int a = 5;
    int b = 10;
    int c;

    // 使用逗号运算符
    c = (a++, b--, a + b);

    printf("a = %d, b = %d, c = %d\n", a, b, c);

    return 0;
}

总结:

  • 整个逗号表达式的值,为最后一个表达式 的值。
  • 逗号运算符优先级最低(比赋值还低)。

2 运算符优先级

运算符

名称

[ ]

数组下标

()

圆括号

-

负号

++、--

自增、自减 windows:先++优于后++ mac、Linux从左到右依次计算

&

取地址运算符

逻辑非

(类型)

强制类型转换

sizeof

长度运算符

*

/

%

取余

+

-

>

大于

>=

大于等于

<

小于

<=

小于等于

==

等于

!=

不等于

&&

逻辑与

||

逻辑或

? :

条件运算符

=

赋值运算符

/=

除后赋值

*=

乘后赋值

%=

取余后赋值

+=

加后赋值

-=

减后赋值

,

逗号运算符

  • 案例 1: 分析下面代码执行过程。res 值为多少?
int a = 0;
scanf("%d", &a);
int res = a < -10 || a >= 10, a > -10 && a <= 10;
  • 案例 2: 分析下面代码执行过程。res 值为多少?
int x = 0, y = 1;
int res = x++ != !y;
printf("res = %d\n", res);
  • 案例 3: 分析下面代码执行过程。res 值为多少?
int i = 35, a = 3, b = 5, c = 7;
int res = i % 7 == 0 && (a != b && b != c && c != a)




相关文章