这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战
C 数据类型——让我们从头开始理解
1. C 编程中的数据类型是什么?
在 C 编程中,数据类型与其名称所暗示的一样。它们代表要存储的数据类型。它们用于在程序中声明多个函数和变量。
数据类型主要分为三类,基本/原始、派生、用户定义。
这张图可以帮到你
现在,我们将分别了解它们各自的含义。
1.1. 整数
它用于存储整数数据类型。
我们使用的常规整数 在16 位机器上的大小为2 字节(16 位) 。但是,大多数现代系统都有32 位或 64 位配置。这种环境中整数的大小为4 个字节,起始值为 -2,147,483,648,结束值为 2,147,483,647。任何涉及超出此范围的数字的操作都将返回垃圾或错误。
注意: 垃圾值只不过是程序内存中的浪费或未使用的数据。它也可能与不再使用的变量有关。因此,最好进行初始化以避免任何未定义的行为。
1.2. 无符号整数
整数也可以是无符号类型。这种32 位类型(无符号整型)的范围在0 到 4,294,967,295和0 到 65535的16 位系统上。****************
1.3. 长
它还存储具有更高范围的整数数据。long 类型在 32 位系统上为4 个 字节,在 64 位设置中为8 个字节。
32 位长范围与整数相同,而在 64 位上,它可以容纳最小值 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
1.4. 无符号长
在某些情况下,我们只需要正数值;那么最好使用无符号类型。它不仅可以确保您获得一个,还可以扩大范围。
unsigned long 有4 个字节,范围从 0 到 4,294,967,295。
1.5. 漂浮
此数据类型也是数字,但允许带有小数位的数字。它的大小为4 个字节,范围为3.4E-38 到 3.4E+38。
float 类型的精度最高为 7 位。
1.6. 双倍的
它与 float 相同,但具有更高的精度范围,即8 个字节,这使其能够在小数位后存储更多数字,准确地说是 double。
它的长度为8 个字节,范围为1.7E +/- 308。double 数据类型的精度高达 15 位。
1.7. 字符
Char 数据类型默认允许单个字符,例如字母表中的一个字母。它的大小仅为1 个字节,范围为 -128 到 127 或 0 到 255。
但是,使用数组 [] 后缀,它可以保存字符串值,即字母数字字符的组合。
1.8. 无符号字符
此外,还有一种类似但不允许 (-ve) 值的 unsigned char 类型。它具有相同的1 字节大小,范围为0 到 255。
1.9. 短的
short 类型的长度为两个字节。它允许值的范围等于 2 的 16 次方,即最多 16 位。由于它是有符号的,因此包含正值和负值。
它的值范围在 -32768 和 32767 之间。
1.10. 无符号空头
unsigned short 类型仅包含 +ve 个数字,并且大小为 2 个字节。它可以存储最小值 0和最大值 65 535。
1.11. 大批
AC 数组是类似数据类型的元素的连续序列。它主要是创建一个基元集合,如数字、字符、结构和联合。
我们有专门的章节介绍数组,您可以稍后阅读。
1.12. 指针
指针用于指向和访问存储在程序动态内存中称为堆的地址处的值。
指针类型变量存储在堆中,而其他类型存储在堆栈中。
就像数组可以有多个元素一样,指针也可以根据分配的内存量保存多个值。
这种数据类型也有一章专门介绍它,所以我们稍后会看到更多。
1.13. 枚举
枚举用于将名称分配给变量到常量。我们也将在以后的章节中讨论。
1.14. 结构(结构)
结构类型用于创建可以在其中保存多种数据类型的数据类型。
1.15. 联盟
联合是一种数据类型,其下的所有值都存储在单个地址中。
在下面的 C 数据类型示例中,我们将看到两种基本 C 数据类型的使用。
2. 数据类型范围和大小
我已经在下表中介绍了所有基本的 C 数据类型以及它们的字节大小和值的范围。
2. 示例程序:打印两个数的商
在这个例子中,我们将对两个整数执行算术除法运算。之后,相同的结果将分配给以下类型的两个变量。
- 整数
- 浮点数
我们首先借助它的流程图来了解这个程序的流程。
2.1. 流程图:
2.2. 算法:
第 1 步:开始
第 2 步:初始化变量
第 3 步:获取用户的输入
第 4 步:得到商 c=d=a/b
第 5 步:打印整数和浮点数的输出
第 6 步:停止
2.3. 代码:
#include<stdio.h>
#include<conio.h>
void main()
{
int a, b, c;
float d;
printf("输入两个数字进行除法:\n");
scanf("%d %d", &a, &b);
c = a/b;
d = a/b;
printf("int 形式的 %d 和 %d 的商是 %d",a , b, c);
printf("\nfloat 形式的 %d 和 %d 的商是 %f",a ,b ,d);
getch();
}
输出
输入两个数字进行除法:21 7
int 形式的 21 和 7 的商是 3
浮点形式的 21 和 7 的商是 3.000000
注意: 如果我们使用 double 类型,那么它也会给出相同的输出,但对于需要准确性的程序来说这很重要。我在这篇文章介绍了基础知识,下一个 C 编程教程中我会介绍有关数据类型及其高级用法的更多信息