学习c中运算符的简单总结



    今天学习了操作符感觉计算机语言也像其他语言一样,挺有意思的,分享一下心得吧!

操作符可分为算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符。
1算术操作符
  + - * / %
1除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
2对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3%操作符的两个操作数必须为整数。返回的是整除之后的余数。

2 移位操作符

<<  左移操作符
>>  右移操作符
左移操作符移位规则:左边抛弃、右边补0 *右移又分为两种,算数移位和逻辑移位,区别如上图所示

*移位不移负数,其标准未定义

3位操作符

  & / /按位与
  | // 按位或
  ^ // 按位异或
注:他们的操作数必须是整数。*注意^&的区别

4 赋值操作符
    赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。
intweight=120;//体重
weight=89;//不满意就赋值
doublesalary=10000.0;
salary=20000.0;//使用赋值操作符赋值。
    赋值操作符可以连续使用,比如:
inta=10;
intx=0;
inty=20;
a=x=y+1;//连续赋值
    这样的代码感觉怎么样那同样的语义,你看看:

x=y+1;
a=x;
    这样的写法是不是更加清晰爽朗而且易于调试。

5赋值操作符

    += = *= /= %= >>= <<= &= |= ^=
    这些运算符都可以写成复合的效果。 
6单目操作符
   ! 逻辑反操作
   - 负值 +正值
   & 取地址

   sizeof 操作数的类型长度(以字节为单位)
   ~ 对一个数的二进制按位取反
   -- 前置、后置--
   ++ 前置、后置++
   * 间接访问操作符(解引用操作符)                  
演示代码:

#include<stdio.h>
intmain()
{
   inta=-10;
   int*p=NULL;
   printf("%d\n",!2);
   printf("%d\n",!0);
    a=-a;
    p=&a;
     printf("%d\n",sizeof(a));
     printf("%d\n",sizeof(int));
     printf("%d\n",sizeofa);//这样写行不行?
     printf("%d\n",sizeofint);//这样写行不行?
return0;
}

7关系操作符
    > >= < <= !=用于测试“不相等”==用于测试“相等”

    这些关系运算符比较简单,没什么可讲的,但是我们要注意一些运算符使用时候的陷阱。 

*注意编程中将==和=写错 

8逻辑操作符
   && 逻辑与 || 逻辑或
   区分逻辑与和按位与

  区分逻辑或和按位或

   对于参加运算的数要换算为二进制进行运算,例如3 & 2的结果是2,过程如下:

3 & 2

=0111 & 0010

=0010

=2

9条件操作符
exp1?exp2:exp3
例子
b=(a>5?3:-3)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章