C语言——基础知识
好久没看c语言了,遗忘了许多知识,从头再来一遍吧
-
基本数据类型
整数 整型 ——int ——4字节 长整型——long ——8字节 短整型——short——2字节 浮点数(实数) 单精度浮点数——float ——4字节 双精度浮点数——double——8字节 字符 字符型——char——2字节 复合类型数据结构 结构体 枚举 共用体
2.变量与常量
变量:所谓变量,指数值可以改变的量
常量:指不可改变的量
变量与常量,实质上都是一段内存空间,只不过变量提供了修改其内存空间的权限。内存空间都有编号,也就是内存的地址。
2.1变量为何要初始化
变量如果未初始化,编译可以成功,但运行时会报错。这和内存空间的管理有关。
当你运行一个程序时,操作系统会为这个程序分配内存,内存有内存地址与内存单元,当程序初始化运行时,就会往内存空间内写入数据,但当程序运行结束后,系统收回内存时,不会清空内存空间,所以会存在大量的垃圾数据。
如果变量没有初始化,会默认读取这些垃圾数据,这些垃圾数据有可能会导致程序崩溃。
2.2变量命名的规则
由数字,字母,下划线组成。
且首个必须是字母或者下划线,而且不能使用c语言关键字。
2.3如何定义变量
1.类型名 变量名;
变量名= ;
2.类型名 变量名,变量名........;
变量名= ; 变量名= ; 变量名= ;........
3.类型名 变量名,变量名= ;
2.4如何定义常量
#define pi 3.14159;
3.进制
十六进制前面加ox或者OX
八进制前面机器o(不是数字零,是字母o)
3.1所谓几进制,就是逢几进一
3.2二进制,八进制,十六进制转换为十进制
例: 111011(二进制)=1*2^0+1*2^1+0*1^2+1*2^3+1*2^4+1*2^5=(59)
136(八进制) =6*8^0+3*8^1+1*8^2=(94)
1F2A(十六进制)=10*16^.0+2*16^1+15*16^2+1*16^3=(7978)
3.3二进制,八进制相互转换
二进制---->八进制: 从右向左,每3位一组,(不足3位补0),转换为八进制
八进制---->二进制: 用三位二进制数替代每一位八进制数
3.4二进制,十六进制相互转换
二进制---->十六进制:从右向左,每4位一组,(不足4位补0),转换为十六进制
十六进制---->二进制: 用4位二进制数替代每一位十六进制数
3.5十进制转化为二进制
整数:方法是除以二取余,逆序排序
以(89)为例
89/2 余1
44/2 余0
22/2 余0
11/2 余1
5/2 余1
2/2 余0
1/2 余1
(89)=1011001(二进制 )
小数:乘2取整,顺序排序
0.625*2=1.25 取整1
0.25*2=0.50 取整0
0.50*2=1.00 取整1
(0.625)=0.101(二进制)