【C语言】操作符详解

1·算数操作符 + - * / %

这里我们需要注意的是%——取模操作符——只能用于整型间,不能用于浮点型

2·移位操作符(只能是整数)—— 移动的是二进制位中的补码

在这里先讲一下,整型的二进制的表示:原码,反码,补码(储存在内存里)

 

>> 右移操作符

算术右移 —— 右边丢弃,左边用符号位(符号位:整数为0,负数为1)进行填充

逻辑右移 —— 右边丢弃,左边填0

<< 左移操作符  —— 左边丢弃,有点补0  

 警告:

对于移位运算符,不能移动负数位,这个是标准未定义的。

3·位操作符 (只能是整数)

& —— 按2进制位与 ——  同位次有一个0则为0,俩个全为1才为1。

| —— 按2进制位或 —— 同位次有一个1则为1,俩个全为0才为0。

^ —— 按2进制位与或 —— 同位次俩个数,相同为0,相异为1。

4·赋值操作符 

 

复合赋值符  +=  -=  *=  /=  %=  >>=  <<=  &=  |=  ^=  

 

5·单目操作符 —— 只有一个操作数

! —— 取反 —— 对变错,错变对

sizeof 需要注意的是 ()里的表达式不会进行赋值运算

 

~ —— 是对二进制进行运算的 

 

 ++分为 前置++与后置++

前置++:即在变量前面,如:++a,其操作顺序为,先++后赋值;

后置++:即在变量后面,如:a++,其操作顺序为,先赋值后++;

 * —— 解引用操作符,其为指针内容,我们后续讲解。

(类型) —— 强制类型转换 —— 就是,我们定义了一个flaot类型的变量,但结果想让其输出整型,如果我们直接进行编译,编译器一般情况下会报错,这时候我们就可以在变量前加上(int)使其强行变为整型。

6·关系操作符

此类很简单,需要注意的是 == 为测试相等,而 = 是赋值符。

7·逻辑操作符

 此类也比较简单,需要注意的是 他们会控制求值顺序,例如:

照大多数小白的思维,其计算结果为 1 2 3 5 ,可为什么编译器的结果为 1 1 3 4 呢,这就是逻辑与和逻辑或的特点,他们会控制求值顺序。对于上述例子来说,a++其为先赋值后++,所以把0赋给,又因为0是假,所以后边的计算式统统不进行运算了。 

8·条件操作符

exp1 ? exp2 : exp3

其运算顺序为,exp1若为真,则exp2的计算的值为整个表达式的结果;exp1若为假,则exp3的计算的值为整个表达式的结果。

其和if else语句差不多

 9·逗号表达式

逗号表达式,就是用逗号隔开的多个表达式,其从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值