数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,这些称为常量(constant)。其他数据类型在程序运行期间可能会改变或被赋值,这些称为变量(variable)。
变量类型有几种,如表格所示,在C语言中,用int关键字来表示基本的整数类型。后3个关键字(long、
short和unsigned)和C90新增的signed用于提供基本整数类型的变式,例如unsigned short int和long long int。char关键字用于指定字母和其他字符(如,#、$、%和*)。另外,char类型也可以表示较小的整数。float、double和long double表示带小数点的数。_Bool类型表示布尔值(true或false),_complex和_Imaginary分别表示复数和虚数。
位、字节和字
计算机的基本存储单元是字节。在提到变量类型时,我们还要意识到它所占的位数。对于应届生,这问题通常也会被问到。最小的存储单元是位(bit),可以储存0或1。字(word)是设计计算机时给定的自然存储单位。
32位机
char :1个字节
指针变量: 4个字节(32位的寻址空间是2^32, 即4GB)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位机
char :1个字节
指针变量: 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4 / 8个字节(视具体情况而定)
long long: 8个字节
unsigned long: 8个字节
整数
在C语言中,整数是没有小数部分的数。例如,整数7以二进制写是111。因此,要在8位字节中储存
该数字,需要把前5位都设置成0,后3位设置成1。
浮点数
浮点数与数学中实数的概念差不多,在一个值后面加上一个小数点,该值就成为一个浮点值。3.16E7 表示3.16×10^7,这里关键要理解浮点数和整数的储存方案不同。计算机把浮点数分成小数部分和指数部分来表示,而且分开储存这两部分。浮点数通常只是实际值的近似值。例如,7.0可能被储存为浮点值6.99999。
int类型
这是最常用的变量类型之一,int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整
数或零。
声明方式
int erns; int hogs, cows, goats;
初始化
初始化(initialize)变量就是为变量赋一个初始值。在C语言中,初始化可以直接在声明中完成。只需在变量名后面加上赋值运算符(=)和待赋给变量的值即可。
int hogs = 21; int cows = 32, goats = 14; int dogs, cats = 94; /* 有效,但是这种格式很糟糕,这种写法很容易让人误认为dogs也被初始化为94,所以最好不要把初始化的变量和未初始化的变量放在同一条声明中。 */
声明为变量创建和标记存储空间,并为其指定初始值。
打印int型
在使用printf函数打印变量时,int型的变量使用%d打印。%d称为转换说明,它指定了printf()应使用什么格式来显示一个值。
例如:printf(“Price is %d dollars\n”, price);