【C语言】运算符

算数运算符

双目:1 + 2 这样操作两个数的运算符

单目:-1 这样表示的是 负一只操作一个数

运算符 名称
+ 加法运算符(双目)
- 减法运算符(双目)
* 乘法运算符(双目)
/ 除法运算符(双目)
% 求余运算符(双目)
+ 正号运算符(单目)
- 负号运算符(单目)

类型转换

写法:(int)3.9 这是强制转换

#include <stdio.h>

int main()
{
        // 类型转换
        printf("转换类型 %d\n",(int)3.9);
}

关系运算符

关系运算符都是双目运算符

在C语言中的关系运算符的优先级大小

mark

关系表达式

#include <stdio.h>

int main()
{
    int a = 1 < 2;
    printf("%d\n", a);
    return 0;
}

mark

逻辑运算符

运算符 含义 优先级 举例 说明
! !a 如果 a 为真,!a 就为假;反之
&& a && b a,b 同为 才为;a,b 有一个 就为;
ll a ll b a,b 同为 才为; a,b 有一个 就为;

逻辑表达式

#include <stdio.h>

int main()
{
        printf("结果  %d \n", 3 > 1 && 1 < 2);
        printf("结果  %d \n", 3 + 1 || 2 == 0);
        printf("结果  %d \n", !('a' + 'b'));
        printf("结果  %d \n", !0 + 1 < 1 || !(3 + 4));
        return 0;
}

mark

短路运算(典型逻辑运算)

#include <stdio.h>

int main()
{
        int a = 3, b = 5;
        ( a = 0 ) && ( b = 3 );
        printf("a = %d, b = %d\n", a, b);

        ( a = 1 ) || ( b = 4 );
        printf("a = %d, b = %d\n", a, b);
        return 0;
}

运行结果

a = 0, b = 5
a = 1, b = 5

解释

#include <stdio.h>

int main()
{
        int a = 3, b = 5;
        // 与 运算,( a = 0 ) 为假,不管后面是什么结果都是假,所以就不会向后执行了
        ( a = 0 ) && ( b = 3 ); 
        printf("a = %d, b = %d\n", a, b);

        // 非 运算, ( a = 1 ) 为真,后面是什么都不影响结果的真,所以也不会往后运算了
        ( a = 1 ) || ( b = 4 );
        printf("a = %d, b = %d\n", a, b);
        return 0;
}
发表评论 / Comment

用心评论~