C语言 操作符 简介

平常生活中的加减乘除,其实就是操作符(它们一出现,我们就知道与它相关联的数据要进行什么操作)

在编程中 它们被称算术操作符(编程中没有  ➗  用/来代替       没有 ✖ 用 * 来代替)

值得一提的是  在这里的除法有些小门道:

Eg:5/2这里输出的是一个整型的2

        5.0/2.0输出的才为2.5

        整型除于整型默认输出整型  第一种的除法是小学学的那种   5除于2等于2余1

        而说起余数,正好有一个算术操作符输出的结果就是余数——%

       5%2输出为1

 

移位操作符——<<    >>(这是两个 大/小  于号组成的,并非我们中文上的书名号)

移位操作符是直接在内存对二进制进行操作的

Eg:

      short a= 1;

      short b=a<<1;

      a本来在内存上表现为00000000 00000001

     由于所有数据为向左移动一位,所以b在内存上表现为   00000000 00000010

     显而易见的, b=2

 

直接在内存上进行二进制操作的还有位操作符,分别是:

&          按位与

|            按位或

^           按位异或

 

接下来是复合赋值符:

Eg:   a=a+10   可以“缩写为”  a+=10

以这种类型的复合符还有:

-=

*=

/=

&=

|=

>>=

<<=

这些都是对变量(左)进行相应运算操作再赋值给原本的变量

 

这些操作符还可以用来分类(一目操作符,双目操作符,三目操作符,多目操作符)

目指的是操作单元。

Eg:  a +  b——这里的加号操作着a和b进行相加 所以加号是一个双目操作符

单目操作符

常用有:  +     -     &     sizeof()     !     ~   ++   --

1.  +  -  放在数字前面,起到表示数字正负的作用。

2.!逻辑反操作:  在C中,规定0为假,非0为真

                            !19= 0

                            !0=1(默认)

3.~是对数的补码进行取反

插入对二级制的一些说明

先引进三个名词: 源码   反码   补码

就拿整型来说,在内存里存储的都是补码

一开始我们将一个整型转换为二级制的那串数字就叫源码

源码的首位不变,其他位取反就可以得到反码(首位又叫做符号位,当它为0是表示数字为正,反之则表示数字为负)

反码的末尾加一(意味着有进位的可能),就得到补码

Tip:正数的源码 反码 补码都相同

 

双目操作符

常见的有:   ++    --    (类型)

1.++(--) 他们在前置和后置下有不同的作用

Eg:b=a++  表示b=a  a=a+1

        b=++a  表示a=a+1 b=a

(b=a a++   合起来就是b=a++看起来挺合理的)

2.(类型)括号里放置你要的类型

Eg: int num1 = (int) 3.14; ——本来电脑会将这个数自动保存为浮点型,但是现在固定为了整型

关系操作符也是双目的

>=  <=  (大于等于号和小于等于号)

!=(判断是否不相等,不相等则输出为真)

== (判断是否相等,相等则输出为真)

>      <(略)

双目操作符的还有逻辑操作符

&& 逻辑与

||    逻辑或

(真假按照0和非0来判断)

Eg:3 && 5 = 1

 

条件操作符/三目操作符

exp1 ? exp2 : exp3

它可以认为是一种对if语句的省略

并且可以运用在特殊情况下

Eg int max=(a>b ? a : b)

翻译: a是否大于 b 是 则取a 不是则取b

 

多目操作符(逗号表达式)

表达式1, 表达式2, 表达式3,....

在这里面  逗号表达式视为一个整体

而逗号是执行优先级最低的操作符

 

上一篇:关于meta标签


下一篇:#define用法和应用介绍