C语言笔记初级篇第五章:操作符

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言笔记初级篇第五章:操作符相关的知识,希望对你有一定的参考价值。

目录

(1)算数操作符

(2)移位操作符

A:左移

B:右移​

(3)位操作符

(4)赋值操作符

(5)单目操作符

(6)关系操作符

(7)逻辑操作符

(8)条件操作符(三目运算符)

(9)逗号表达式

(10)下标引用,函数调用和结构成员

A:下标引用操作符

B:函数调用操作符

C:结构体成员

(11)表达式求值

A:隐式类型转换

B:算数转换

C:操作符的属性


(1)算数操作符

第一点:基本介绍

算数操作符包括以下几种

第二点:注意事项

1:除了“%”之外,其余算数操作都可以用于整数和浮点数,"%"左右两侧必须为整数

2:对于“/”,当左右操作数是整数时,执行的是整除(也就是只要商的部分),当左右操作数有一个是小数时,当然前提变量要定义为浮点型,执行的就是除法,也就是结果是小数

(2)移位操作符

A:左移

左移就是这个数的二进制位向左移动,空出来的用0补齐

左移的结果就是这个数变为2倍

B:右移

逻辑移位:补码向右移动,空出来的用0填充

算数移位:补码向右移动,空出来的用符号位填充(主要使用)

算数右移的结果就是变为原来的二分之一

需要注意不要移动负数位,此标准未定义

(3)位操作符

(4)赋值操作符

赋值操作符基本无需讲解,这里只需注意一下常用的这些复合赋值符

(5)单目操作符

第一:单目操作符的类型

第二:对其中几个单目操作符的说明

1:sizeof

sizeof是用来计算空间大小的

sizeof和数组

sizeof内部不会进行计算

2:"~"按位取反

按位取反基本介绍

按位取反的应用

(6)关系操作符

(7)逻辑操作符

(注意这里的逻辑操作符不要和位操作符搞混了,位操作符是对数的二进制位进行操作,而逻辑操作符是对数本身操作)

第一:逻辑操作符类型

第二:逻辑与和逻辑或的区别

逻辑与:遇假则假,全真则真

逻辑或:遇真则真,全假则假

这里要特别注意逻辑与左边为假停止计算,如果是逻辑或左边为真停止计算

(8)条件操作符(三目运算符)

(9)逗号表达式

用逗号分开的表达式就叫做逗号表达式,逗号表达式会从左到右依次计算,最终逗号表达式返回的是最后一个表达式的结果

在一般情况下,逗号表达式是不常使用的,因为有时会造成代码的不易理解

(10)下标引用,函数调用和结构成员

A:下标引用操作符

B:函数调用操作符

我们调用函数的圆括号,就是函数调用操作符

C:结构体成员

第一点:结构体是什么

我们之前使用的int,char类似于结构体,然后int a,就是创建一个int类型的变量。

我们可以把结构体理解为一个学生,这个学生它有很多信息,例如信息,学号,性别等等。而这些信息就叫做这个结构体的成员

第二点:创建结构体变量

上述实例中创建的就是“struct Student”的结构体,然后类似于Python中类与对象关系,进行实例化,就是创建结构体变量

第三:"结构体.成员名"

第四点:"结构体指针->成员名"

前面我们说过“int* a”,定义了一个指向int的指针a。那么这里对于我们自己创建的结构体也是这样的

当然上述取成员的操作是正确的,但是太麻烦了,于是对于结构体指针我们取成员名是用"->"

(11)表达式求值

A:隐式类型转换

第一点:什么是整型提升

C语言的整型算数运算总是至少以整型类型的精度进行的,如下一个例子中最终的输出结果可能会与我们所想的不一样

在上述这个表达式中,字符或短整形操作数在使用前被转换为了普通整形,这种转换称为整形提升

第二点:整形提升的规则

第三:整形提升的例子

实例1

实例2:

B:算数转换

C:操作符的属性

第一:复杂表达式求值顺序的决定因素

1:操作符的优先级

2:操作符的结合性(先考虑优先级再考虑结合性)

3:是否控制求值顺序

4:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

以上是关于C语言笔记初级篇第五章:操作符的主要内容,如果未能解决你的问题,请参考以下文章

C语言笔记初级篇第八章:简单调试

C语言笔记初级篇第八章:简单调试

C语言笔记初级篇第六章:指针入门

C语言笔记初级篇第六章:指针入门

C语言笔记初级篇第一章:C语言快速入门及注意事项

C语言笔记初级篇第一章:C语言快速入门及注意事项