C语言自学
前言
记录C语言学习
一、基本数据类型
C语言提供了丰富的数据类型,数值表现都有一定的范围和特征,它们都是由数据类型决定的。
1.基本数据类型和数
算数类型是多种数据类型的统称,大体可分为两种类型:整数类数据类型、浮点型。如下图:
其中整数类数据类型又包含三类:枚举型、字符型(表示字符)、整形(表示整数),浮点型可表示具有小数部分的数值。
数:二进制、八进制、十进制等知识点。
2.整型和字符型
2.1 整型
整型和字符型是用来表示限定范围内连续整数的数据类型。
在C语言中处理整数,可以根据用途和目的灵活使用以下数据类型:
即无符号整型、有符号整型
声明变量时,可加上类型说明符signed
或者unsigned
来指定其中一种数据类型,若不加类型说明符,则默认有符号。
整数除了有符号和无符号外分类之外,还可根据可表示的值范围分为多种类型。分为4种
这些数据类型又有带符号和无符号的,如下图:
2.2 字符型
char
型是用来保存“字符”的数据类型。
没有声明sigend或者unsigend的char,具体是哪一种编译器决定。
2.3<limits.h>
C语言编译器在头文件<limits.h>中以宏定义方式定义了字符型以及其他整型所能表示数值的最大最小值。不同编译器表示的范围不同,下图是一个大众的表示范围:
2.3位和CHAR_BIT
位是数据存储单元,可保存两种取值的对象,且对象中各二进制位的地址不需要表示。
位可取两种值,一种为0。0以外的值,称为“设置位”
C语言中通过使用sizeof运算符可以判断出包括char型在内的所有数据类型长度(字节),如下图
2.4size_t和typedef声明
注意:typedef声明并不是创建新的数据类型,而是为已有的数据类型取个小名。
3 整数的内部表示
3.1无符号整数内部表示
一般来说,n位x进制可以表示的无符号整数有,0-x^n-1,共 x^n种。
3.2有符号整数内部表示
有符号整数的内部表示因编译器而不同,最常用的表示法有补码、反码、符号和绝对值3种。
三种方法的共同之处就是:用最高位表示数值的符号。
补码:
反码:
符号和绝对值: