一、C语言的基本概述
1、C语言之父:丹尼斯·里奇
2、语言的特点:①移植性好,适用于不同的平台
移植性:将代码拷贝运用到另一平台台时,所需要修改的的代码量越少
移植性越好
②可以直接访问硬件
③运行效率高
3、内核基本都由C语言构成,少部分是汇编语言
汇编的使用:对简单的硬件的初始化采用汇编
C语言的使用:对硬件对复杂的变化时采用C语言
4、C语言:面向结构,操作的是具体事务,注重过程
C++、Java等:面向对象,具有很好的代码复用性(可以直接被调用,很少有修改的
地方)、维护性(出错了容易找到错误的地方)、扩展性(增加新功能
的时候不需要修改原来的代码)
5、C语言的标准:c89、c99、c11、k&RC
二、数据类型
1、定义:数据集合的划分,不同的数据类型对CPU的意义不一样
2、隐式类型转换:char<int <float<duble
3、字节单位的转换:1字=4字节=32bit
1半字=2字节=16bit
数据类型的字符长度:char 1字节
short 2字节
int 4字节
float 4字节
long 4字节
double 8字节
补:指正是保存地址的,而地址的长度是固定的,地址的长度是由操作系统决定的,
因此在32位系统中任何类型的指正都是4字节
4、unsigned char取值范围:0~255
signed char 取值范围是-128~127
负数的补码:符号位为1,取绝对值,算绝对值的原码,然后绝对值的原码取反加1
举例:
-1的补码:|-1|=1
1去处符号位的原码是:000 0001
将上述原码取反:111 1110
再加1:111 1111
加上-1的符号位1,则得出-1的补码:1111 1111
5、sizeof和strlen的区别:
Strlen:A、strlen函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个
'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一
直找下去,直到遇到'\0'停止
B、strlen只能用char*做参数,且必须是以''\0''结尾的
C、strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,
不是类型占内存的大小
Sizeof:A、sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof
不是函数,仅仅是一个操作符
B、sizeof可以用类型做参数,也可以用函数做参数
C、sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因
为sizeof是个操作符不是个函数。
D、当适用了于一个结构类型时或变量, sizeof 返回实际的大小,当适用一
静态地空间数组, sizeof 归还全部数组的尺寸。
6、数据类型的分类
数据类型 |
基本数据类型 | 空类型 | |||
字符型 | |||||
数值型 | 实型 | 单精度实型 | |||
双精度实型 | |||||
整形 | 短整型 | 无符号短整型 | |||
有符号短整型 | |||||
整形 | 无符号整形 | ||||
有符号整形 | |||||
长整型 | 无符号长整形 | ||||
有符号长整形 | |||||
复合数据类型 | 数组 | ||||
结构 | |||||
联合 | |||||
枚举 | |||||
指针 |