c语言操作符总结

在c语言的学习中c的操作符是最重要的一关,下面是我对操作符的总结:
算数操作符:
           +   加:左右操作数适用于整型和浮点型数。
            -    减:左右操作数适用于整型和浮点型数。
            *    乘:左右操作数适用于整型和浮点型数。
            /    除:左右操作数适用于整型和浮点型数。
           %  模运算或求余:左右两边接受两个整型操作数,返回值是余数而不是商。
                 eg:
                     <pre class="c" name="code">
                           int a=10,b=7;
                           printf("%d %d %d %d %d",a+b,a-b,a*b,a/b,a%b);
                      </pre>
  
移位操作符:
 <<  左移操作符   左边溢出的移除,右边空出的位用0补上;
>>    右移操作符   左边空出的位有两种方式补充:
                                                                             逻辑移位  在左边空出的用0补充。
                                                                             算数移位  在左边空出的用符号位原本(符号位原本的为1就用1 补充 符号位原本就是0就用0 补充)补充。
                     补充:
                           1、右移一个数等价于给一个数除2。  ----------->      a>>1   <==>    a/2。
                           2、左移一个数等价于给一个数乘2。  ----------->      a<<1   <==>    a*2。
      eg:
              <pre class="c" name="code">
                    int a=10;
                    printf("%d    %d",a>>1,a<<1);
               </pre>
 
位操作符:
                 &    按位与        如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。
                  |     按位或        如果两个相应的二进制位都为0,则该位的结果值为0,否则为1。
                 ^     按位异或    如果两个想应的二进制位相同,  则该位的结果值为0,不同为1。
        eg:
               不引入变量进行两个数的交换:
                           a=a^b;
                           b=a^b;
                           a=a^b;
赋值操作符:
                                          +=
                                           -=
                                           *=
                                           /=
                                           %=
                                           <<=
                                           >>=
                                           &=
                                           ^=
                                           |=
                    eg:
                           a=a+10;    <==>     a+=10;
单目操作符:
                     !            逻辑反操作
                      -             负值
                      +            正值
                      &            取地址
                      sizeof     操作数的类型长度(以字节为单位)
                      ~            对一个数的二进制按位取反
                      --           前置、 后置--
                      ++         前置、 后置++
                      *             间接访问操作符
                     (类型)  强制类型转换
              eg:
         <pre class="c" name="code">               
                        int a=10;
                        int*  p=&a;
                        *p=20;
          </pre>
关系操作符
                 >
                 <
                 <=
                 >=
                 !=
                 ==
        注:
                =与==的用法及注意事项,=为赋值,==为等于。
  逻辑操作符:
                 &&  逻辑与
                  ||     逻辑或
          eg:
                非0为真           0为假
               1&2    ————>  0
               真&&真————>1
               真&&假————>0
               假&&假————>0
               1|2     ————>  3
               真&&真————>1
               真&&假————>1
               假&&假————>0
条件操作符
               形式:
                       exp1  ?   exp2   :   exp3
      
              eg:
                     当a大于5时b=10,否则b=20
                    <pre class="c" name="code">
                    b=a>5 ? 10 : 20;
                   </pre>
逗号表达式
            exp1,exp2,exp3,exp4;
            逗号表达式是用逗号隔开的多个表达式,
            从左向向右依次执行,整个表达式的结果是最后一个表达式的结果。
            eg:
                for(a=10,b=20,i=1;i<10;i++,a++)


优先级顺序
                     基本表达式 1级
                     后缀表达式 2级
                     单目/一元运算 3级
                     强制类型表达式 4级
                     乘法表达式 5级
                     加法运算符 6级
                     移位运算符 7级
                     关系运算符 8级
                     相等运算符 9级
                     位与运算符 10级
                     位异或运算符 11级
                     位或运算符 12 级
                     逻辑与运算符 13级
                     逻辑或运算符 14 级
                     三元条件运算符 15级
                     赋值运算符 16 级
                     逗号运算符 17级
优先级等级口诀
                      圆方括号、箭头一句号, 自增自减非反负、针强地址长度,
                      乘除,加减,再移位,
                      小等大等、等等不等,
                      八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。
                      其中“,”号为一个等级分段。
优先级等级注释
                           “圆方括号、箭头一句号”指的是第1级的运算符。其中圆方括号很明显“()、[]”,箭头 指的是指向结构体成员运算符“->”,句号 指的是结构体成员运算符“.” ;
                           “自增自减非反负、针强地址长度”指的是第2级的运算符。其中 非 指的是逻辑运算符“!”,反 指的是按位取反运算符“~”,负 指的是负号运算符“-”,针 指的是指针运算符“*”,
                            强指 的是强制类型转换运算符,地址 指的是地址运算符“&”,长度 指的是长度运算符“sizeof ”;
                           “乘除,加减,再移位”移位指的是左移运算符“<<”和右移运算符“>>”,其中除法还包括了 取余运算符“%”;
                           “小等大等、等等不等” 指的是第6级到第7级的运算符:<、<=、>和>=,等等指的是等于运算符==,不等指的是不等于运算符!=
                           “八位与,七位异,六位或”其中 八位与 指的是第8级的 按位与 运算符“&”,七位异 指的是第9级的按位异或运算符“^”,六位或 指的是第10级的按位或运算符“|”;
                           “五与,四或”指的是第11级、第12级的逻辑与运算符“&&”和逻辑或运算符“||”;
                           “三疑,二赋,一真逗”指的是第13级到第15级的运算符。其中,三疑指的是条件运算符“?:” (三有双重含义:即指优先级别是三,它的运算符类型也是三目,疑也取“?”之   意),
                            二赋 指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,一真逗 指的是第15级的“,”运算符,真字只是为了语句需要罢了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lao_wine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值