C语言操作符思维导图

C:\AppData\Roaming

C语言操作符
    算术操作符
         +  可以作用于整数和浮点数
        -  可以作用于整数和浮点数
        *  可以作用于整数和浮点数
        /  如果两个操作数都为整数,执行整数除法。只要有浮点数,就执行浮点数除法
         % 两个操作数必须为整数。返回的是整除之后的余数
    移位操作符
        << 左移操作符  左边抛弃,右边补0  左移一位相当于给该值*2
        >> 右移操作符  右移一位相当于给该值/2
            逻辑移位:左边用0填充,右边丢弃
            算术移位:左边用原该值的符号位填充,右边丢弃
        不要移动负数位,这是标准未定义的
    位操作符
        &  按位与    都为1时为1
        | 按位或    都为0时为0
        ^ 按位异或  相同为0,不同为1
    逻辑操作符
        &&   逻辑与  进行&&运算的时候如果左侧表达式为0,那么右侧表达式不计算
        ||   逻辑或   进行||运算的时候如果左侧表达式为1,那么右侧表达式不计算
    赋值操作符
        =   赋值操作符可以给一个变量赋初值,也可以重新赋值 
            赋值操作符可以连续使用,如:a=x=y+1; 但不简单明了,所以不建议使用
         复合操作符 +=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=                    
            如:x&=y <=>x=x&y
    下标引用,函数调用和结构成员
        []  下标引用操作符  操作数:数组名[索引值]
        ()   函数调用操作符 接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数
        访问一个结构的成员    .  结构体.成员名     ->  结构体指针->成员名
            (*pstu).age等同于pstu->age
    逗号表达式
        逗号表达式,就是用逗号隔开的多个表达式。用逗号表达式,从左到右依次执行。整个表达式的结果是最后一个表达式的结果
            除了在for循环中有意义,还没发现它有意义的地方
    条件操作符
        exp1 ? exp2 : exp3
            if(x>y){return x;    }else      return y;
                          等同于     
            return x>y ? x : y
    表达式求值
        表达式求值的顺序一部分是由操作符的优先级和结合性决定。有些表达式的操作数在求值的过程中可能需要转换为其他类型
            C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整形,这种转换称为整形提升

                负数的整形提升:高位补充符号位,即为1   正数的整形提升:高位补充符号位,即为0
        如果某个操作符的各个操作数属于不同的类型,那么除非一个操作数的转换为另一个操作数的类型,否则操作就无法进行。
            寻常算术转换                 long double             double                         float                     unsigned long int         long int                unsigned int                   int
            如果某个操作数的的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。
                算术转换要合理,不然会有一些潜在问题。如,精度丢失
        复杂表达式的求值有三个影响的因素 1.操作符的优先级                          2.操作符的结合型                          3.是否控制求职顺序
            两个相邻的操作符先执行哪个取决于它们的优先级。如果两者的优先级相同,取决于它们的结合型
                不要在一个表达式中对一个变量修改多次。在有歧义的地方多使用(),防止预期结果出错
    关系操作符
        >   大于
        >=   大于等于
         <   小于
        <=   小于等于
        !=   不等于
        ==   等于
    单目操作符
        !   逻辑反操作 真变假,假变真
        -   负值
        +   正值
        &   取地址
        sizeof 操作数的类型长度(以字节为单位)
        ~  对一个数的二进制按位取反
        --  前置、后置--
        ++ 前置、后置++
            ++n  返回值是自增之后的值                             n++ 返回值是自增之前的值
        *   间接访问操作符(解引用操作符)
        (类型) 强制类型转换

猜你喜欢

转载自blog.csdn.net/weixin_43267837/article/details/88955108