zoukankan      html  css  js  c++  java
  • C语言 运算符

    C语言 运算符

    运算符优先级别

    优先级

    运算符

    名称或含义

    使用形式

    结合方向

    说明

    1

    []

    数组下标

    数组名[常量表达式]

    左到右

    --

    ()

    圆括号

    (表达式)/函数名(形参表)

    --

    .

    成员选择(对象)

    对象.成员名

    --

    ->

    成员选择(指针)

    对象指针->成员名

    --

    2

    -

    负号运算符

    -表达式

    右到左

    单目运算符

    ~

    按位取反运算符

    ~表达式

    ++

    自增运算符

    ++变量名/变量名++

    --

    自减运算符

    --变量名/变量名--

    *

    取值运算符

    *指针变量

    &

    取地址运算符

    &变量名

    !

    逻辑非运算符

    !表达式

    (类型)

    强制类型转换

    (数据类型)表达式

    --

    sizeof

    长度运算符

    sizeof(表达式)

    --

    3

    /

    表达式/表达式

    左到右

    双目运算符

    *

    表达式*表达式

    %

    余数(取模)

    整型表达式%整型表达式

    4

    +

    表达式+表达式

    左到右

    双目运算符

    -

    表达式-表达式

    5

    << 

    左移

    变量<<表达式

    左到右

    双目运算符

    >> 

    右移

    变量>>表达式

    6

    > 

    大于

    表达式>表达式

    左到右

    双目运算符

    >=

    大于等于

    表达式>=表达式

    < 

    小于

    表达式<表达式

    <=

    小于等于

    表达式<=表达式

    7

    ==

    等于

    表达式==表达式

    左到右

    双目运算符

    =

    不等于

    表达式!= 表达式

    8

    &

    按位与

    表达式&表达式

    左到右

    双目运算符

    9

    ^

    按位异或

    表达式^表达式

    左到右

    双目运算符

    10

    |

    按位或

    表达式|表达式

    左到右

    双目运算符

    11

    &&

    逻辑与

    表达式&&表达式

    左到右

    双目运算符

    12

    ||

    逻辑或

    表达式||表达式

    左到右

    双目运算符

    13

    ?:

    条件运算符

    表达式1?

    表达式2: 表达式3

    右到左

    三目运算符

    14

    =

    赋值运算符

    变量=表达式

    右到左

    --

    /=

    除后赋值

    变量/=表达式

    --

    *=

    乘后赋值

    变量*=表达式

    --

    %=

    取模后赋值

    变量%=表达式

    --

    +=

    加后赋值

    变量+=表达式

    --

    -=

    减后赋值

    变量-=表达式

    --

    <<=

    左移后赋值

    变量<<=表达式

    --

    >>=

    右移后赋值

    变量>>=表达式

    --

    &=

    按位与后赋值

    变量&=表达式

    --

    ^=

    按位异或后赋值

    变量^=表达式

    --

    |=

    按位或后赋值

    变量|=表达式

    --

    15

    逗号运算符

    表达式,表达式,…

    左到右

    --

    常用运算符分类

    运算符类型

    作用

    算术运算符

    用于处理四则运算

    赋值运算符

    用于将表达式的值赋给变量

    比较运算符

    用于表达式的比较,并返回一个真值或假值

    逻辑运算符

    用于根据表达式的值返回真值或假值

    位运算符

    用于处理数据的位运算

    sizeof运算符

    用于求字节数长度

    算术运算符

    注意事项

    • 1、0 不能作为除数。
    • 2、取余只能对整形操作。
    • 3、++a:先自己进行+1在计算表达式结果(推荐使用)
    • 4、a++:先进行表达式结果赋值变量,在进行+1
    • 5、二义性:同时在一个表达式中存在 ++a --a、不同系统可能会不同。
    • 6、所有非0的值都是真值
    • 7、单目运算符高于双目运算符

    运算符表

    运算符

    术语

    示例

    结果

    +

    正号

    +3

    3

    -

    负号

    -3

    -3

    +

    10 + 5

    15

    -

    10 - 5

    5

    *

    10 * 5

    50

    /

    10 / 5

    2

    %

    取模(取余)

    10 % 3

    1

    ++

    前自增

    a=2; b=++a;

    a=3; b=3;

    ++

    后自增

    a=2; b=a++;

    a=3; b=2;

    --

    前自减

    a=2; b=--a;

    a=1; b=1;

    --

    后自减

    a=2; b=a--;

    a=1; b=2;

    赋值运算符

    赋值运算符表

    运算符

    术语

    示例

    结果

    =

    赋值

    a=2; b=3;

    a=2; b=3;

    +=

    加等于

    a=0; a+=2;

    a=2;

    -=

    减等于

    a=5; a-=3;

    a=2;

    *=

    乘等于

    a=2; a*=2;

    a=4;

    /=

    除等于

    a=4; a/=2;

    a=2;

    %=

    模等于

    a=3; a%2;

    a=1;

     案例

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    
    int main(void)
    {
        int a = 10;
        // 赋值简单写法、a = a + 5; 相同。
        a += 5;
        // 取模赋值简单写法、a=a % 5;
        a %= 5;
        // 赋值简单写法、a = a * 5; 相同。
        a *= 5;
        // 取模赋值简单写法、a=a / 5;
        a /= 5;
        printf("%d
    ", a);
        return 0;
    }
    赋值运算符 使用案例

    比较运算符

    比较运算符表

    C 语言的比较运算中,用数字“1”来表示,用数字“0”来表示。

    运算符

    术语

    示例

    结果

    ==

    相等于

    4 == 3

    0

    !=

    不等于

    4 != 3

    1

    小于

    4 < 3

    0

    大于

    4 > 3

    1

    <=

    小于等于

    4 <= 3

    0

    >=

    大于等于

    4 >= 1

    1

    案例

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    
    int main(void)
    {
        // 比较计算真假值
        int a = 10;
        int b = 20;
        int c = 10;
        // 假:0
        printf("%d
    ", a == b);
        // 真:1
        printf("%d
    ", a != b);
        // 假:0
        printf("%d
    ", a >= b);
        // 以此类推....
        printf("%d
    ", a <= b);
        printf("%d
    ", a = b);
        printf("%d
    ", a < b);
        printf("%d
    ", a > b);
    
        // 运用其他公式、c为1真值
        printf("%d
    ", c = ++a <= b * 2);
        return 0;
    }
    比较运算符 使用案例

    逻辑运算符

    逻辑运算符表

    运算符

    术语

    示例

    结果

    !

    !a

    如果a为假,则!a为真;

    如果a为真,则!a为假。

    &&

    a && b

    如果ab都为真,则结果为真,否则为假。

    ||

    a || b

    如果ab有一个为真,则结果为真,二者都为假时,结果为假。

    案例

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    
    int main(void)
    {
        int a = 10;
        int b = 20;
        
        // !非:假0、非真为假,非假为真
        printf("%d
    ",!a);
        // 真1
        printf("%d
    ", !!a);
        // &&与:真1、同真为真,其余为假
        printf("%d
    ", a && b);
        // 假0:!a为单目运算符,高于双目运算符(前后都有表达式)
        printf("%d
    ", !a && b);
        // ||或:表达式、同假为假,其余为真
        printf("%d
    ", a || b);
        // 运算符:优先级
        int c = a++ + b || c-- * c && !b + ++c;
    
        return 0;
    }
    逻辑运算符 使用案例
  • 相关阅读:
    111111
    国际化(提取代码中文)
    分库操作(无事务)
    Nignx(四)location语法详解
    Nginx项目笔记
    SAX:进行XML解析
    流处理PDF、Base64
    JAVA8:stream流
    JPA一对多,多对一映射
    有关技术站点
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/12372884.html
Copyright © 2011-2022 走看看