前言
面对日常生活中各种各样的数值,C语言提供了丰富的数据类型。丰富的数据类型是C语言一大特色,也从侧面反映了C语言具有很强的数据处理能力。
一、数据类型的定义
数据类型定义了数据的含义、对数据执行的操作以及存储该类型数据的方式。更通俗地讲,数据类型是数据的一个属性,它告诉编译器或解释器程序员打算如何处理该数据。
二、C语言中数据类型的分类
常见的数据类型包括基本类型、枚举类型、空类型和派生类型。
-
基本类型包括整型类型、浮点类型
整型类型 : 基本类型(int)、短整型(short int)、长整型(long int)、*双长整型(long long int)、字符型(char)、布尔型(bool)
浮点类型: 单精度浮点型(float)、双精度浮点型(double)、复数浮点型(float_complex、double_complex、long long_complex) -
枚举类型:enum
-
空类型:void
-
派生类型: 指针类型(*)、数组类型([ ])、结构体类型(struct)、共用体类型(union)、函数类型
下面小编将讲解使用最广泛的整型即int,其他整数类型由此类推。
1、整型
C语言可以让程序员针对不同的情况选择不同的整型。因为不同的整数类型表示不同的取值范围和正负值,而且这样设计更有助于程序员节省内存资源的同时,还能写出更精简的代码。
(1)整型int
int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整数和零。注意,C语言中把不含小数点和指数的数作为整数。
- 接下来讨论存储一个int需要多少字节?
int的字节长度由操作系统(位数)和编译器共同决定的。一般情况下,字节长度由操作系统决定。比如说,你的电脑是32位操作系统,那么int就默认为4个字节;如果你的电脑时64位操作系统,此时有两种情况:一种是int为32位即4个字节,另一种是int为64位即8个字节。一般情况下,int都是4或2个字节。
ISO C规定int的取值范围最小为-32768~32767。 - 整型int用法
整型用于声明一个变量是整型的,即程序员告诉编译器在内存开辟一个大小为4字节的空间,存储该变量的值。
语法:size_t name;或size_t name = num;
size_t是整型的关键字,如int,long,short。name是变量名,num是整数。注意整数num的大小必须在size_t所表示的范围内。
整型用法举例:初始化与声明
(1). 声明就是先写整型的关键字,然后写变量名,最后加上一个分号。
int a; //有效声明
可以在3条声明中声明各变量,也可以在1条声明中声明3个变量,代码如下:
// 写法1
int num1, num2, num3; // 该声明与下面的3条声明等价
// 写法2
int num1;
int num2;
int num3;
虽然这两种方法的效果都是相同的,即为3个int大小的变量赋予名称并分配内存空间,但是更推荐写法2。因为按照这种方法写出的代码可读性更高,更爽朗清晰。
总之,声明仅仅为变量创建和标记存储空间,而变量存储的值是随机值,具体数值是由编译器决定的。
(2).初始化变量就是为变量赋一个初始值
在C语言中,初始化可以直接在声明中完成即在变量名后面加上赋值运算符(=)和待赋给变量的值。代码如下:
int num1 = 2;
int num2 = 3, num3 = 4;
int num4, num5 = 6;// 有效写法,但是不推荐,代码格式糟糕,可读性差
总之,初始化就是为变量创建和标记存储空间并为其指定初始值。
- 整型的关键字
C语言提供了3个附属关键字修饰基本类型:short,long和unsigned。
C语言规定:
(1)short int类型占用的存储空间可能比int类型少,常用于节省空间的场合。
(2)long int或long占用存储空间可能比int多,适用于存储比较数值的场合。
(3)long long int或long long占用存储的空间可能比long多,适用于更大数值的场合。
(4)unsigned int或unsigned只用于非负值的场合。
再强调一遍:int,long等整型的具体大小取决于具体的编译器。虽然最常见的设置是:long long占64位,long占32位,short占,int占16位或32位,但是有很多初学者认为int,long等整型的大小是固化的。原则下,这4种类型代表4种不同的大小。
但是在实际使用中,类型之间是可以重叠的比如int与long都是4字节大小。
- 打印整型值
我们暂时使用printf()函数打印int类型的值。代码如下:
#include <stdio.h> // 为printf函数提供原型
int main()
{
int num = 2; // 初始化整型变量
printf("num = %d\n", num);
return 0;
}
程序编译运行,结果如下:
本人初学编程,文章若有错误,请各位读者多多指教