C语言学习之路--第二站 常用转义字符与运算符

125 阅读2分钟

学到此处,发现很多与java的共同之处,之后会精简笔记内容,更多记录不同之处。

常用转义字符:

\n 换行 
\r 回车
\t 制表符

下面进行一个小小的测试:

image.png image.png

运算符可以分成很多种类:

算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
杂项运算符

首先学习基本算术运算符,与Java类似可以忽略。

+ \ - \ * \ / (加、减、乘、除)
% 取余
++/-- 自增/自建

关系运算符同上不做过多的解释

== | !=   相等和不相等
> | < | >= | <= 大小等于

逻辑运算符

&& 且
|| 或
!  非

位运算符 ==> 使用场景可能有些少,首先位运算符都是将数字转为二进制进行操作

& 且  同真为真,非同为假/有0为0 无0为1
| 或  有真为真,无真为假/有1为1 无1为0
^ 异或 有真为真,全真为假/有0为1 无0为0 
~ 取反 01互换为反码,反码+1 为补码。符号位取反时变,取补时不变
<< 将操作数向左移动指定位数。 结果相当乘以2的n次方
>> 将操作数向右移动指定位数。 结果相当除以2的n次方

我们首先对或且非取反进行实践。或且异或比较好理解,取反经过一部分学习后有部分理解。

主要记录取反的逻辑。

实验对象是 整数类型数据 c:8 和 d:13

首先转为二进制,方法为短除法。

 8:0000 1000
13:0000 1101 

上面展示的是个人理解的二进制表示方法,非标准展示,此部分内容不太清楚。二进制还包含一位符号位,1为正,0为负。可以浅显的理解为 【 8: 1 0000 1000 】

再了解一下反码和补码的概念。可以浅显的理解将01互换后为反码(此时互换包含符号位),将反码+1为补码。而取反的操作就是获得的补码。代码中注释也记录了该过程。

image.png image.png

下面进行移位运算,结果比较好理解,过程不必纠结。代码中显而易见。

image.png image.png

赋值运算符比较好理解,主要记录一下有哪些赋值运算符

 =  赋值运算符
 += 加且赋值运算符
 -= 减且赋值运算符
 *= 乘且赋值运算符
 /= 除且赋值运算符
 %= 求模且赋值运算符
 <<= 左移且赋值运算符
 >>= 右移且赋值运算符
 &= 按位与且赋值运算符
 ^= 按位异或且赋值运算符
 |= 按位或且赋值运算符

最后杂项运算符

sizeof() 返回变量的大小
&    返回变量的地址
*    指向一个变量
?:   条件表达式,真为x,假为y

简单测试一下杂项的使用.

image.png

image.png

至此,运算符的了解基本完成,下面进行判断循环等学习。