C语言数据类型:基本类型、构造类型、指针类型,详见下图
2、整型数据概述
整型数据概述 | ||||
关键字 | short、int、long、Longlong | |||
占据空间(字节数) | short:2字节(不随条件改变) int:4字节(根据CPU硬件而变化,等于CPU字长) long:4字节(不随条件改变) | |||
表示范围 | short:-32768~32767 //2^16 unsigned short:0~65535 //集中在正数范围 int、long:-2147483647~2147483647 //2^32 unsigned int、unsigned long:0~4294967295 //集中在正数范围 longlong:2^64 unsigned longlong :集中在正数范围 | |||
存储形式(计算机内部) | 正数以原码的形式存储,负数以补码的形式存储; | |||
允许参与的运算 | 基本全部参与(%运算,被除数与结果符号相同) |
一个整数存储到计算机的过程
先除以2,然后将结果倒序形成真值,而后为了符合计算机的表示方法及存储位数,则在前面补零,注意最高位是符号位(1代表负数,0代表整数),补足后是原码,正数采用原码存储,而负数采用补码存储,是负数的原码先在每一位取反(符号位不变),得到反码,然后再最后一位加1(如果原来最后一位是1,则进位),形成补码,即负数采用补码的形式存储;
fabs():对浮点型求绝对值
abs():对整型求绝对值
实型数据概述
实型数据概述 | ||||
关键字 | float、double | |||
占据空间(字节数) | float:4字节 doubel:8字节 | |||
表示范围 | float:10^-37~10^37,至少小数点后6位 double:至少小数点后10位 | |||
存储形式(计算机内部) | float:分为三部分(1位表示符号,23位表示非指数部分,主要是尾数或有效数字,8位表示指数部分及其符号,这个符号是表示指数的正负) double:分为三部分(1位表示符号,48位表示非指数部分,主要是尾数或有效数字,15位表示指数部分及其符号,这个符号是表示指数的正负) | |||
允许参与的运算 | 基本全部参与 |
字符型数据概述
字符型数据概述 | ||||
关键字 | char | |||
占据空间(字节数) | char:1字节 | |||
表示范围 | 0~127个字符 | |||
存储形式(计算机内部) | ASCΙΙ码,一共127个 | |||
允许参与的运算 | 字符输入输出 |
几点注意事项:
汉字在计算机中采用的是国标码的一种:区位码,即把收录的所有汉字、图形符号组成一个94*94的方阵;区和位是两个坐标轴,位置总数是94*94=8836个,除了现有的7445个汉字,剩余1391个空位置留作备用;
因为char字符型只占一个字节,所以如果将大于一个字节的数据,例如定义了一个字符常量‘FATE’,它占据4个字节(32位),如果把这个字符常量赋给一个char变量,那么只有最后8位起作用,因此变量的值是‘E’,因为一个char变量只能接收一个字节的内容,即接收上述字符常量的最低一位(E);即当把长数据传递给端数据时,会造成数据丢失;但是当把短数据传递给长数据时,例如一个2字节的数据占据了目标变量(4字节)的低两位,那么高两位则填充0或者1,为了保持符号不变,正数在高两个字节填补0,负数在高两个字节填补1,该特性称为符号扩展特性;
构造类型数据概述
一种四种构造类型,除了数组类型外,其他三种类型都可以产生新类型;
数组的特性
同质性,即同一个数组内部所有的元素都是一个类型;
连续性,即可以通过下标进行地址偏移完成数据连续输入与输出;
有序性,即数组内部的元素的相对位置都是固定的,前后关系固定;
多维数组按照行顺序进行存储,先存第一行,然后存第二行;
二维数据具有行指针与列指针;
指针
两个指针只可以在规定的范围内进行运算,例如相减,有一个前提就是两个指针必须指向同一个数组;