今天的学习内容是C语言,关于C语言,之前也断断续续学过。现在开始正式重新学习一遍。
一、数据类型
int:整型 ----整形在计算机内存中占据4个字节位,整形的数据范围为 2^31—2^31-1
在有符号整形数据中规定把最高位作为符号位,1表示为负数,0表示为正数。
unsigned int(无符号整型):0—2^31-1
char: 字符型 -- 字符型在计算机内存中占据1个字节位。字符型数据在内存中以整形数据的形式存储。从整形数据转换到字符型数据要通过ASCII码表。
float:浮点型(小数)
long:长整型
double:双精度型
long double:长双精度型
在计算机中所有的数据都是以补码的形式存在
反码:除符号位之外,所有的数据位取反。
补码:反码+1
正数的反码和补码都是他本身。
求负数的原则是先反后补。 符号位不参与取反,参与计算。?
还有一点比较重要的知识是:有符号类型的数据范围在负数上多一个。下面是一个代码案例
我们可以看到当字符型的数据范围超过她所包含的范围时,显示出来的结果并不是1,而是-128。这是为什么呢?是因为在无符号的字符型数据下数据范围是0-255,比有符号的-127-127多了一个数字,而这个数字就是±0,因为±0是同一个数字所以为了让数据范围一样,后面就人为规定-128也在范围之内了。这就是为什么显示128.
把长数据类型转换成短数据类型:窄转换
把短数据类型转变为长数据类型:宽转换
float:小数不能进行等于号判断,下面是一个代码案例
因为有些小数在二进制的转换下可能是一个位数超过规定位数的数。所有有些数并不能完全相等。
那么小数的二进制转换。可以参考一下这个链接float 浮点型底层存储原理_float 0.01+0.02-CSDN博客
这个转换规定叫IEEE(电气与电子工程协会)754规定
最高位:符号位
8位:指数位
23位:数值位
变量和常量
变量的定义:有内存的量
常量:数值
变量的初始化:将变量在定义时赋值
二、关键字
sizeof :计算目标占据计算机内存的大小
三、C语言的语法结构
1.顺序结构
2.分支结构
3.循环结构
顺序结构:
c运算符:
单目运算符:
-- 自减1
++ 自增1
++a和a++的区别问题:
a++ 与 ++a 的区别_++a和a++的区别-CSDN博客
这个题目很经典,如果可以看到这篇文章的人,可以把自增符号调换位置看一看输出。
!:非
~ :取反 :符号位也取反
双目运算符:
=,-,*,+
/:整除
== 判断等号两边是否相等
算数运算符:
逻辑运算符:(不会影响输出)
&&:与
||:或
非零jizhen
编译器优化:当 || 的左边为真,右边不进行逻辑判断。
当&&的左边为假,右边不进行逻辑判断。
位操作符:
&:与 :将某些位置清零
|:或 : 将某些位置置一
^:异或 :相异为1,相同为0 :位的反转
>> :右移
经典面试题。
三目运算符:
a>b?a :b
.分支结构
if else
switch case
分支结束不能缺少break(代码逻辑)
switch 只能接收整形数据。
3.循环结构
for()循环的初始条件;循环的终止条件;循环的步长
{
}
while
do{}while
这一章先把框架搭在这里后面我们再补充。