**c语言关键字:**c标准中常用关键字有32个,这些都是小写,是某个英文单字缩写如:int - integer 整数,char-charact 字符
**计算机存储结构:**计算机只采用二进制存储数据,这些数据是存储在存储器,用户通过输入设备(键盘)输入的数据是先存在内存中,控制器将数据传递给运算器,运算器处理完传递给控制器,控制器将数据传递给输出设备(显示器)
**内存概念:**计算器存储器一般分为两种:RAM(随机存储器)、ROM(只读存储器)
**只读存储器(Read Only Memory):**属于非易失性存储设备,掉电不会丢失数据
**随机存储器(Random Access Memory):**属于易失性存储设备,掉电数据丢失,速度很快,一般直接和CPU传输,计算机的内存条就是RAM,其空间越大,CPU处理数据越多
内存单位: 内存中一个MOS管栅极电容可以存储一个二进制数据0/1,标准规定一个二进制数用bit(比特-binary digit)来表示,bit是计算机数据的最小单位,计算机处理数据的最小单位是byte(字节),1字节=8比特,32bit(位)系统(或64位系统)表示计算机的地址总线位数,即计算机的寻址范围是32位,32位二进制数可以表示 2^32=4294967296 个不同的地址,每个地址对应一个存储单元(1字节),通常以字节位单位来表示内存空间,即寻址总范围2^32字节,2^10=1024字节(1KB),1MB=1024字节*1024字节(2^10*2^10=2^20),1GB=1024字节*1024字节*1024字节(2^30),2^32=2^30*2^2=4*2^30=4*1GB,即32位系统寻址范围位4GB字节,存储单元地址0x0000 0000~0xFFFF FFFF,存储单元的大小是1字节,存储单元的地址是4字节(一共32位一个字节是8位)
c语言常量与变量:内存是一块连续的存储空间,每个存储单元都有对应编号(地址)且是固定的,且用户一般不会直接通过地址访问,效率太低,c语言规定用户有权限从内存中申请一快内存单元,且可以对其进行命名(对内存单元的地址重命名,需要提前说明申请内存单元的大小,一般以字节位单位),然后linux内核会将用户的命名与内存地址建议映射关系------可以直接通过命名来访问存储单元
**常量:**在程序运行期间不会改变的量
**变量:**程序运行期间可能会发生改变的量,用户根据需求向kernel(内核),申请一块存储单元并命名,用户可以随时修改内存单元的数据,内存单元大小可以通过c语言中数据类型指定
**命名规则:**变量与常量也叫做标识符,要求只能由字母、下划线、美元符号($)组成(区分大小写),且只能以字母或下划线( _ )开头,为避免二义性,c语言规定不能以系统保留字,和程序中已经存在的函数名称命名如main、int
**c语言的数据类型:**c语言提供一些关键字专门用来表示数据类型(表示要申请内存单元的大小)

字符型: c语言提供了一个关键字char(character),表示字符,数据宽度为1字节,用 ' '单撇号表示字符,c语言规定,存储字符格式--->数据宽度 变量名称;如:char(数据宽度) ch(变量名称) = 'a'; c语言标准中字符包括:普通字符、转义字符,c语言不支持二进制输入支持8、10、16进制输入
**整数型:**int (integer)在32位系统下,其数据宽度为4字节,可以用不同进制存储数据,需要加前导符8进制 0表示、16进制0x/0X表示
**小数的进制转换(10进制转2进制):**小数部分不断乘2,取整数部分,直到小数部分为0,如0.625->0.625*2=1.25(取出整数部分1,小数部分0.25继续*2)->0.25*2=0.5(取0,剩0.5)->0.5*2=1.0(取1,剩0.0转换结束)->0.101
**短整型:**short(short int int可以省略)32位系统中,宽度位2字节
**长整型:**long 32位系统在为4字节,64为系统中为8字节
**长长整型:**long long 32为与64为系统中均占8字节
**数据的正负:**c语言标准中signed(有符号)和unsigned(无符号)修饰整数,signed为隐式修饰符,即用户未指定时,整型变量默认为有符号数
**负数的存储:**二进制中最高位表示符号位,1表示负数,0表示正数
原码,反码和补码:正数:三码相等 6->0x 0000 0110,负数:反码=原码符号位不变,其余为按位取反,补码=反码+1,计算机是以二进制的补码存储数据
如:char a = -5;
char b = 16; a+b=11
16: 0001 0000 三码合一
-5: 原码 :1000 0101
反码 :1111 1010
补码::1111 1011
16 补码::0001 0000
16+(-5) 补码:0000 1011 (最高位是0表示正数11)
浮点型: float单精度4个字节,double双精度个字节,c语言有两种方式表示浮点数3.14或314*10-^2->314E-2(c语言规定用e或者E表示以10为低的指数,e/E后面必须是整数,前面必须有数字)
字符串: 用双引号表示( " " )且规定字符串结束标志是'\0'(不用手动添加,系统会自动在字符串末尾添加)
**布尔型:**c99标准中可以使用布尔型表示真假