提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
数据类型
- C语言中的数据类型分类为四种:分别是基本类型、构造类型、指针类型、空类型。
- 所谓数据类型就是通过定义的变量性质,表现的形式,所占据存储空间大小及构造特点来划分。
- 所以我们在编程中,明确数据的类型是很重要的,它有助于保证数据的正确性和程序的健壮性。
字节(知识扩展)
字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。通常:一个英文字母占一个字节,一个中文字符占两个字节;
- 位(bit,b):是最小的存储单位,也称"比特"。只能取0,1两种状态。
- 字节 (Byte,B):1Byte = 8bit ,
- 千字节 (KiloByte,KB):1KB=1024B,用于表示文件的大小。
- 兆字节 (MegaByte,MB):1MB=1024KB,用于表示存储设备。
- 吉字节 (GigaByte,GB):1GB= 1024MB。
- 太字节 (TeraByte,TB):1TB= 1024GB,用于表示大容量存储设备。
基本类型
基本类型是编程语言的数据单元,用于存储不同的数据类型。它们是编程语言中最基本的元素,用于表示不同类型的数据.
整型类型
整型类型:标准整数类型的存储大小和取值范围的细节:
修饰符 | 数据类型 | 存储大小 | 取值范围 |
---|---|---|---|
signed | short | 2 字节 | -32,768 到 32,767 |
unsigned | short | 2 字节 | 0 到 65,535 |
signed | int | 2 或 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned | int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
signed | long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned | long | 4 字节 | 0 到 4,294,967,295 |
什么是signed和unsigned
整型数据可以被修饰符 signed 和 unsigned 修饰。
- signed 修饰的整型称为有符号的整型。
- unsigned 修饰的整型称为无符号的整型。
signed和unsigned区别
- 无符号整型可以存放的正数范围比有符号整型的大一倍。
- 默认情况下,整型数据都是有符号的,因此 signed 修饰符可以省略。
打印整型数据类型(案例)
打印出short,int,long数据类型大小以及类型的最大值和最小值。
解题思路
- 在这个代码中,我们首先需要包含了stdio.h和limits.h头文件。
- 使用limits.h头文件:是一个标准库的头文件,包含了各种整数类型的属性,如最小值、最大值和位数等。通过使用这个头文件,可以获取关于整数类型的更多信息,以便在编写代码时做出正确的决策。
- 使用 stdio.h 头文件:是 一个标准库头文件,这个头文件包含了 C 语言标准库中关于输入和输出的函数、宏和类型。
- 在main函数中,我们使用printf函数打印。
- 在main函数中,我们使用sizeof 运算符得到类型或变量在特定平台上的准确大小。
注意:
- %d 格式化符号用于输出使用,这可以用来输出整型变量。
- %lu 用于表示 unsigned long 类型整数的一个格式说明符。在 printf 和 scanf 函数中,它用于以特定的格式输出或读取 unsigned long 类型的值。
代码内容
#include <stdio.h>
#include <limits.h>
int main()
{
printf("=================short=======================\n");
printf("short 存储大小 : %lu \n", sizeof(short));
printf("short 最小值: %d\n", SHRT_MIN );
printf("short 最大值: %d\n", SHRT_MAX );
printf("===================int=====================\n");
printf("int 存储大小 : %lu \n", sizeof(int));
printf("int 最小值: %d\n", INT_MIN );
printf("int 最大值: %d\n", INT_MAX );
printf("===================long=====================\n");
printf("long 存储大小 : %lu \n", sizeof(long));
printf("long 最小值: %d\n", LONG_MIN );
printf("long 最大值: %d\n", LONG_MAX );
return 0;
}
短整型(short)
什么是短整型
- 短整型(short)是一种整数类型,通常用于表示相对较小的整数值。
- 通常占用2个字节(16位),范围从-32768到32767。
- 它是一种紧凑的数据类型,适用于存储较小范围的整数值。
- 由于其占用空间较小,适用于节省内存的场合,如数组、结构体等数据结构中的元素。(后期会学)
创建短整型变量并赋值 (案例)
- 输出样式
解题思路
首先声明了一个名为num的短整型变量,然后给它赋值为2227。
使用printf函数打印出这个变量的值。
注意:在printf函数中,我们使用了%d格式说明符来指定要打印的是一个短整型变量。
代码内容
#include <stdio.h>
int main() {
short num; // 声明一个短整型变量
num = 2227; // 赋值给num
printf("输出short的值: %d\n", num); // 打印num变量的值
return 0;
}
注意:使用短整型(short)可能会导致精度损失或溢出。
因此,选择适当的数据类型是编程中的一个重要方面,以确保数据的准确性和程序的正确性。
整型(int)
什么是整型
- 基本整型(int)是一种整数类型,通常用于表示整数。
- 通常占用4个字节(32位),范围从-2147483648到2147483647。
- 它是比较大的数据类型,适用于存储较大的整数值。
- 其占用空间较大,适用于需要更高精度的计算或表示更大范围的整数值的场合。
创建整型变量并输出 (案例)
- 输出样式
解题思路
- 首先声明了一个名为num的整型变量,然后给它赋值为6678951。
- 使用printf函数打印出这个变量的值。
注意:在printf函数中,我们使用了%d格式说明符来指定要打印的是一个整型变量。
代码内容
#include <stdio.h>
int main() {
int num; // 声明一个整型变量
num = 6678951; // 赋值给num
printf("输出int的值: %d\n", num); // 打印num变量的值
return 0;
}
长整型(long)
什么是长整型
- 长整型(long)是一种整数类型,通常用于表示较大的整数值。
- 通常占用4个字节或8个字节,32位平台上,范围从-2147483648到2147483647;
- 具体取决于平台和编译器。在64位平台上,范围更大。
- 它是比较大的数据类型,适用于存储较大的整数值。
- 与 int 类型相比,long 类型通常占用更多的内存空间。
创建长整型变量并输出 (案例)
- 输出样式
解题思路
- 首先声明一个num的长整型变量,然后给它赋值为:1234567890。
- 使用printf函数打印出这个变量的值。
注意:在printf函数中,我们使用了%ld格式说明符来指定要打印的是一个长整型变量。
代码内容
#include <stdio.h>
int main() {
long num; // 声明一个长整型变量
num = 1234567890; // 赋值
printf("输出long的值: %ld\n", num); // 打印变量的值
return 0;
}
浮点类型
浮点类型:标准浮点类型的存储大小、取值范围和精度的细节:
数据类型 | 存储大小 | 取值范围 | 小数精度 |
---|---|---|---|
float | 4 字节 | .12E-38 到 3.4E+38 | 6 位有效位 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位有效位 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位有效位 |
打印浮点数据类型(案例)
打印出float、double、long double数据类型大小以及类型的最大值和最小值以及精度值。
解题思路
- 在这个代码中,我们首先需要包含了stdio.h和float.h头文件。
- 使用 stdio.h 头文件:是 一个标准库头文件,这个头文件包含了 C 语言标准库中关于输入和输出的函数、宏和类型。
- 使用float.h 头文件:是 一个标准头文件,这个头文件包含了关于浮点数的一些宏定义和类型定义。
- 在main函数中,使用printf函数打印。
- 在main函数中,使用sizeof 运算符得到类型或变量在特定平台上的准确大小。
- 使用FLT_MAX、DBL_MAX和LDBL_MAX宏来获取浮点类型的最大值。
- 使用FLT_MIN、DBL_MIN和LDBL_MIN宏来获取浮点类型的最小值。
- FLT_DIG、DBL_DIG和LDBL_DIG宏来获取每种类型的精度值。
注意:
- %lu 用于表示 unsigned long 类型整数的一个格式说明符。在 printf 和 scanf 函数中,用于以特定的格式输出或读取 unsigned long 类型的值。
- %f是用于格式化输出浮点数(float)的格式说明符。当你在printf函数中使用%f,它会将后面的浮点数参数按照默认的格式打印出来。
- %Lf 是 用于表示 long double 类型浮点数的一个格式说明符。在 printf 和 scanf 函数中,它用于以特定的格式输出或读取 long double 类型的值。
代码内容
#include <stdio.h>
#include <float.h>
int main() {
printf("===================float=====================\n");
printf("float存储大小:%zu字节\n", sizeof(float));
printf("float 最大值:%f\n", FLT_MAX);
printf("float 最小值:%f\n", FLT_MIN);
printf("float 精度值: %d\n", FLT_DIG);
printf("===================double=====================\n");
printf("double存储大小:%zu字节\n", sizeof(double));
printf("double 最大值:%f\n", DBL_MAX);
printf("double 最小值:%f\n", DBL_MIN);
printf("double 精度值: %d\n", DBL_DIG);
printf("===================long double=====================\n");
printf("long double存储大小:%zu字节\n", sizeof(long double));
printf("long double 最大值:%Lf\n", LDBL_MAX);
printf("long double 最小值:%Lf\n", LDBL_MIN);
printf("long double 精度值: %d", LDBL_DIG);
return 0;
}
说明:
在大多数编译器和平台上,long double的精度通常高于double,至少是18位左右。但是,具体精度取决于编译器和平台,可能会有所不同。可以使用特定的宏(如LDBL_DIG)在<float.h>头文件中获取long double类型的精度值。
单精度(float)
创建单精度变量并输出 (案例)
- 输出样式
解题思路
- 首先声明一个pi的单精度变量,然后给它赋值为:3.14159。
- 使用printf函数打印出单精度变量的值,且只打印小数点后两位数。
注意:
- 在printf函数中,我们使用了%f格式说明符来指定要打印的是一个单精度变量。
- 使用printf函数和%.nf格式说明符来控制浮点数的精度。其中,n表示小数点后的位数。
代码内容
#include <stdio.h>
int main() {
float pi; // 声明一个单精度变量
pi = 3.1415926f;// 赋值给pi
printf("输出float的值: %.2f", pi); // 打印单精度变量的值,且只要后面两位小数
return 0;
}
双精度(double)
创建双精度变量并输出 (案例)
- 输出样式
解题思路
- 首先声明一个pi的双精度变量,然后给它赋值为:3.1415926535897。
- 使用printf函数打印出单精度变量的值,且只打印小数点后两位数。
注意:
- 在printf函数中,我们使用了%lf格式说明符来指定要打印的是一个双精度变量。
- 使用printf函数和%.nf格式说明符来控制浮点数的精度。其中,n表示小数点后的位数。
代码内容
#include <stdio.h>
int main()
{
double pi; // 声明一个单精度变量
pi = 3.1415926535897;// 赋值给pi
printf("输出double的值: %.6lf", pi); // 打印双精度变量的值,且只要后面六位小数
return 0;
}
字符类型
修饰符 | 数据类型 | 存储大小 | 存储范围 |
---|---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 | |
unsigned | char | 1 字节 | 0 到 255 |
signed | char | 1 字节 | -128 到 127 |
- 存储大小:char 类型通常占1个字节,但由于是依赖于平台实现的,确切的存储大小可能有所不同。
- 取值范围:char 类型可以表示一个字符的整数值。其取值范围依赖于具体的字符集和编码方式。
- 在ASCII码中,char 类型的取值范围是-128 到 127。
- 精度:char 类型用于表示单个字符,其精度取决于字符集和编码方式。
打印字符数据类型(案例)
打印出char数据类型大小以及精度值。
解题思路
-
在这个代码中,我们首先需要包含了stdio.h和limits.h头文件。
-
使用 stdio.h 头文件:是 一个标准库头文件,这个头文件包含了 C 语言标准库中关于输入和输出的函数、宏和类型。
-
使用limits.h头文件:是一个标准库的头文件,包含了各种整数类型的属性。通过使用这个头文件,可以获取关于整数类型的更多信息,还可以获取字符类型数据的位数,以便在编写代码时做出正确的决策。
-
在main函数中,使用printf函数打印。
-
在main函数中,使用sizeof 运算符得到类型或变量在特定平台上的准确大小。
-
使用CHAR_BIT宏来获取字符类型数据的位数。
注意:
%d 是格式说明符,用于表示十进制整数。当你在printf函数中使用%d时,它会期望后面跟着一个整数值,并将该整数值格式化为十进制形式。
代码内容
#include <stdio.h>
#include <limits.h>
int main() {
printf("char 字符大小: %lu bytes\n", sizeof(char));
printf("The number of bits in char type is: %d\n", CHAR_BIT);
return 0;
}
字符型(char)
创建字符型变量并输出 (案例)
- 输出样式
解题思路
- 首先声明一个charA的字符型变量,并将其初始化为大写字母A。
- 使用printf函数打印出字符型变量的值。
- 使用%c和%d格式说明符打印字符和其对应的ASCII码值
注意:
- 在printf函数中,我们使用了%c格式说明符用于打印字符型变量的值。
- %d 是格式说明符,用于表示十进制整数。当你在printf函数中使用%d时,它会期望后面跟着一个整数值,并将该整数值格式化为十进制形式。
代码内容
#include <stdio.h>
int main()
{
char charA; // 声明一个字符变量
charA = 'A'; // 定义初始化为大写字母A
printf("定义初始化字符值为: %c 对应的ASCII码值 %d\n", charA,charA); // 打印字符初始化的变量值,使用%c和%d格式说明符打印字符和其对应的ASCII码值
return 0;
}
总结
以上就是今天要讲的内容,本文介绍了什么是字节,数据类型中基本类型:整型类型:短整型(short)、整型(int)、长整型(long)。浮点类型:单精度(float)、双精度(double),字符型(char)的使用和案例。