c语言基础学习(C语言零基础教程之运算符和表达式)

c语言基础学习(C语言零基础教程之运算符和表达式)

C语言基础学习(C语言零基础课程中的运算符和表达式)

运算符和表达式

运算符:运算符用于执行程序代码操作,并将对多个操作数进行运算。比如:2+3,它的操作数是2和3,运算符是“+”

操作数:操作符作用的实体。操作数指示由指令执行的操作所需的数据源。

表达式:是数字、运算符、数字分组符号(括号)、自由变量等的组合。通过有意义的排列方法可以得到数值。

表达写作规则

1、操作人员不能相邻。例a+-b是错的。

2.乘法符号不能省略。x列乘以y应该写成x*y而不是xy。

3.多层括号可以用来表示操作顺序。括号必须成对出现,并且使用圆括号。

运算符优先级和结合性

所谓优先级,就是当一个表达式中有多个运算符时,先计算谁,后计算谁。其实这个是我们小学学算术的时候学的,比如1+4÷2。

那么什么是“结合”呢?优先级都是优先级不同的操作员参与运算时,先算谁,再算谁。但如果运营商优先级相同,那么先计算谁,再计算谁呢?这是由“组合”决定的。

比如1+2×3÷4,乘除优先级相同,但从左到右计算,即先算乘法再算除法,所以乘除组合是从左到右。就这么简单!

操作员分类

按所需操作数分类:

单目操作者

双目操作员

三元运算符

按功能分类:

算术运算符

标志

功能

+

单眼矫正

-

单眼底片

+

增加

-

负的

*

多样地

/

除...之外

%

交付

单目加减不改变操作数的值。int num = 10-num;//是表达式的值-10 num或10

整数除法会向下舍入。5/2 == 25/2.0 == 2.5

模运算只适用于整数。5%2 == 15.2%2//语法错误

赋值运算符

标志

功能

=

估价

+=

估价

-=

估价

*=

估价

/=

估价

%=

估价

=

估价

将数据(常量或表达式)赋给变量。int age = 18年龄+= 2;//年龄=年龄+2;年龄+=5-3岁;//年龄=年龄+(5-3);

关系运算子

标志

功能

>

比...更大

=

大于或等于

0 ?“正”:“负”);printf((5 > 0)?(“正”):“负”);//为了避免令人眼花缭乱,可以在每个表达式中添加括号运算符。

标志

功能

记忆技能

&

一点一点地

0是0。

|

按下钻头或

有一个,然后一个。

^

按位异或

与0相同,与1不同。

~

单眼否定

0比1,1比0。

右移

从右向左移动以填充0。

位运算只针对整数和字符类型,直接对二进制进行运算。

按位和&

其实这个符号和逻辑and运算&&的意思是一样的,只是作用于每一位。

0如果有0:对于每一位,两个数都为真,则为真,否则为假。

 3-> 0b 0000 0011 2-> 0b 0000 0010 3&2 ->0b 0000 0010

按或|

同理,和逻辑OR运算||,意思一样,但是作用于每一位。

对每个人来说,凡是真的就是真的,否则就是假的。

 3-> 0b 0000 0011 2-> 0b 0000 0010 3|2 ->0b 0000 0011

按位异或

同为0,差为1:对于每一位,只要同为0,差为1。

 3-> 0b 0000 0011 2-> 0b 0000 0010 3^2 ->0b 0000 0001

逐位反转

求反是单目算子,对每一位求反,即0变1,1变0。

 6-> 0b 0000 0110 ~6-> 0b 1111 1001    //补码:最高位变成了符号位,所以结果肯定是一个负数      0b 1000 0110 //反码      0b 1000 0111 //原码   result: -7

左移

左移操作是将这0,1,1整体左移N位,右边缺失的会补0。

 3-> 0b 0000 0011 3 0b 0000 0010 2>1 -> 0b 0000 0001 ==1 2-> 0b 0000 0010 2

以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~