C语言基础-小甲鱼--(一)---概述
===C语言概述===
1.汇编不区分大小写,C语言区分大小写的。
2.C语言是面向过程的,非常巧妙。C语言更接近底层,更接近技术。JAVA C++ 是面对对象的。
3.C语言能够直接访问物理结构,能进行位操作,可以将汇编嵌入C语言,直接进行内存操作。
4.UNIX 、LINUX 都是用C语言写的,windows 底层也是C写的。
===面向过程与面向对象===
1.面向过程:一种以事件为中心的编程思想,是需要分析出解决问题所需要的步骤,一步步的实现。
面向对象:一种以事物为中心的编程思想,拆分子步骤就是一个一个过程。
===数据类型、运算符和表达式===
1. 基本数据类型:其值不可以再分解为其他类型,级基本数据类型是自我说明的。
2.构造数据类型:根据已定义的一个或多个数据类型用构造的方法来定义。 主要有:数组类型、结构体类型、共用体(联合)类型
3.指针类型:指针的值是表示某个变量在内存储器中的地址。
4.空类型:函数的返回类型。
===常量与变量===
在程序执行过程中,其值不会改变的类型称为常量,会变的类型是变量。
符号常量: #define 标识符 常量
#define : 预处理命令,在程序好没有进行编译前进行操作的,称为宏定义命令。
整型变量:整常数。八进制、十六进制等.
八进制:以0开头 十六进制:前缀为0X 或者0x.
内存中的二进制存储:数值是以补码表示的,正数的补码和原码相同,负数的补码,将该数的绝对值的二进制形式按位取反再加1.
===实型变量===
实型数据一般占4个字节32位内存空间。按指数形式存储。 分为 符号、小数部分、指数部分三个部分。
实型变量的分类:单精度float 、双精度double、长双精度 long double 三类。
3.实型数据的舍入误差:由于实型数据是由有限的存储单元组成的,因此能提供的有效数字总是有限的。
===转义字符的使用===
字符数据在内存中的存储:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符直接是以ASCII码的形式存放在内存中的。
字符串常量:一对双引号引起的字符序列。字符常量占一个字节的内存空间。字符串常量的最后需要增加一个字节的有效字符:‘\0’(ACSCII码为0),这是字符串的结束标志。
====内存==
内存中只会保存数字,且数字只能为1和0,需要通过ASCII码才能转换为字符等进行显示。
===各类数值型数据之间的混合运算===
变量的数据类型是可以转换的。转换的方法有两种,一种是自动转换,一种是强制转换。自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。
自动转换遵循以下规则:
1. 若参与运算量的类型不同,则先转换成同一类型,然后再进行运算。
2. 转换按数据长度增加的方向进行,以保证精度不降低。如int 型和long 型运算时,先把int 量转换成long 型后再进行运算。
3. 所有的浮点运算都是以双精度进行的,机试仅含float 单精度量运算的表达式,也要先转换成 double 类型,再作运算。
4. char 型和short 型参与运算时,必须先转换成int 型。
5. 再赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
自动转换规则:char short --》 int ==> unsighed ==>long ==>double