C的关键字共有32个。1>.数据类型关键字(12个)char,short,int,long,float,double,unsigned,signed,struct,union,enum,viod2>.控制语句关键字(12个)if,else,switch,case,default,for,do,while,break,contiue,goto,return3>.存储类型关键字(5个)auto,extern,register,static,const4>.其他关键字(3个)sizeof,typedef,volatile2>.数据类型
3>.常量
常量的作用:在程序运行过程中,其值不能被改变的量;常量一般出现在表达式或赋值语句中;举几个例子:整型常量:100,200,-100,0等实型常量:3.14,9.18,1.44等字符型常量:'a','b','10','\n'字符串常量:"age","123","jason"常量的定义:const数据类型常量名;#deifne常量名值注意:通过“#deifne”定义的常量是根据值来匹配数据类型的,推荐使用这种方式定义常量。const修饰的常量是不安全的,可以通过指针来修改4>.变量
变量的作用:在程序运行过程中,其值可以改变;变量在使用前必须先定义,定义变量前必须有相应的数据类型;变量特点:变量在编译时为其分配相应的内存空间;可以通过其名称和地址访问相应内存;5>.类型限定符
二.进制
进制也就是进制位,是人们规定的一种进位方法。对于任何一种进制-X进制,就表示某一位置的数运算时逢x进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,依次类推,x进制就是逢x进位。1>.二进制
二进制逢2进1,所有的数都是由0,1组成,如11+1=100。十进制转二进制:除二反序取余法(将十进制数每次除以2,取出余数,按照结果倒叙排序)。二进制专十进制:权值法(将二进制各个位数从0位开始乘以2的N次幂,将各个位数的结果相加)。当前计算机系统使用的基本上都是二进制系统,数据在计算机中主要以补码的形式存储。以下一些术语大家可以了解一下:bit(比特)一个二进制代表以为,一个位只能表示0或1两种状态。数据传输是习惯以“位”(bit)为单位。Byte(字节)一个字节为8个二进制,称为8位,计算机中存储的最小单位是字节。数据存储是习惯以“字节”(Byte)为单位。WORD(双字节)2个字节,即16位。DWORD两个WORD,4个字节,即32位。1b1bit,1位。1B1Byte,1字节,8位。1k,1K1024B。1M(1兆)1024k,1024*1024。1G1024M。1T1024G。1Kb(千位)1024bit,1024位。1Kb(千字节)1024Byte,1024字节。1Mb(兆位)1024Kb=1024*1024bit。1MB(兆字节)1024KB=1024*1024Byte2>.八进制
八进制逢8进1,所有的数字是0到7组成。十进制转八进制:除八反序取余法(将十进制数每次除以8,取出余数,按照结果倒叙排序)。二进制转化为八进制:将二进制数字从右到左,每3个二进制数划分为一组,将每组数据的二进制转换成八进制对应的数字即可。八进制转换为二进制:八四二一法则(将八进制的每一个位数上的数字拆开,分别用二进制表示即可。)3>.十进制
十进制逢10斤=1,有数字0-9组成,也是咱们生活中默认使用的进制。十进制转换成二进制,八进制,十六进制的方法我这里就不啰嗦了,过于简单我这里就不啰嗦了,我这里重点说一下十进制的小数转换成二进制的方式。十进制小数转换成二进制:小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转化后的结果。为了方便说明,我们看一下十进制的0.521如何用二进制表示:0.521*2---------1.042---->第一次计算结果,取整数部分1,然后把小数部分0.042继续和2相乘0.042---->这里的0.042就是上面计算的1.042的小数部分*2----------0.084----->第二次计算结果,取整数部分0,然后把小数部分0.084机型和2相乘0.084----->这里的0.084是上面计算的0.084的小数部分*2----------0.168------>第三次计算结果,取整数部分0,并终止计算,因为十进制0.521只有3位小数,顾我们只需要取3位二进制位即可,最终结果为0.100如上所述,我们来总结一下十进制转换成二进制的几个要点:(1)乘的时候只乘小数部分;(2)0.521只有3位,因此我们只需要算出3位二进制位置即可;(3)0.521的二进制数为:0.1004>.十六进制
十六进制逢16进1,由数字0-9和字母A-F组成。十进制转化为十六进制除十六反序取余法(将十进制数每次除以16,取出余数,按照结果倒叙排序,需要注意的是大于10的数字应该由A-F来表示)十六进制转化为十进制权值法(将二进制各个位数从0位开始乘以16的N次幂,将各个位数的结果相加)。十六进制转换为二进制八四二一法则(将十六进制的每一个位数上的数字拆开,分别用二进制表示即可。)二进制转换为十六进制将二进制数字从右到左,每4个二进制数划分为一组,将每组数据的二进制转换成八进制对应的数字即可。十六进制转换为八进制思路就是先将十六进制转换成二进制,再将二进制转换成八进制。八进制转换成十六进制思路就是先将八进制换转成二进制,再将二进制转换成十六进制。5>.进制转换表
6>.在C程序中进制打印案例
三.sizeof关键字
四.计算机内存数值存储方式
1>.原码
一个数的原码(原始的二进制码)有如下特点:最高位作为符号位,0表示正,1表示负;其它数值部分都是数值本身绝对值的二进制数;负数的原码是在其绝对值的基础上,最高位变为1;举个例子,我们用一个字节的原码来表示+15,-15,+0,-0+15:00001111-15:10001111+0:00000000-0:10000000原码表示方法简单易懂,带有符号数本身转换方便,只要符号位还原即可,但当两个整数相减或不同符号相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。2>.反码
一个数的反码(原始的二进制码)有如下特点:对于正数,反码与原码相同;对于负数,符号位不变,其它部位去反;举个例子,我们用一个字节的反码来表示+15,-15,+0,-0+15:00001111-15:11110000+0:00000000-0:11111111反码运算也不方便,通常用来作为求补码的中间过渡3>.补码
在计算机系统中,数值一律使用补码来存储,主要原因如下:统一了0的编码;将符号位和其他位统一处理;将减法运算转变为加法运算;两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
五.整型(int)
1>.整型变量的定义和输出
一个有符号的整型数据可以分为两部分:一部分是符号位,一部分是数字位。无符号数据类型只包含数字位部分。当我们写程序要处理一个不可能出现负数的时候,一般用无符号数,这样可以增大数的表达最大值。有符号和无符号整型取值范围如下:short占用2字节,取值范围在-32768到32767(-2的15次方到2的15次方减1)。int占用4字节,取值范围在-2147483648代2147483647(-2的31次方到2的31次方减1)long占用4字节,取值范围在-2147483648代2147483647(-2的31次方到2的31次方减1)unsignedshort占用2自己,取值范围在0到65535(0到2的15次方减1)unsignedint占用4字节,取值范围在0到4294967295(0到2的32次方减1)unsignedlong占用4字节,取值范围在0到4294967295(0到2的32次方减1)