欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言 - 什么是数据类型?数据类型的本质

程序员文章站 2022-05-10 15:19:54
C语言中提供了许多的数据类型,如下图所示: c语言为什么要引入这么多的数据类型呢?因为C语言归根结底只是一门编程语言,一种让计算机为我们做事情的工具。引入这么多的数据类...

C语言中提供了许多的数据类型,如下图所示:

C语言 - 什么是数据类型?数据类型的本质

c语言为什么要引入这么多的数据类型呢?因为C语言归根结底只是一门编程语言,一种让计算机为我们做事情的工具。引入这么多的数据类型是为了更加方便的表现现实世界中事物。

1.什么是数据类型?

C语言为我们提供了int, float等基本数据类型,这些都是表示基本数据用的。然而C语言也为我们提供了复杂的数据类型,比如struct, union等。这些可以由基本数据类型抽象组合而成,可以对应现实世界的任何抽象事物,方便我们编写程序。

那我们怎么去理解数据类型。我们通常用一个数据类型,比如int 去定义一个变量,就像这样:

int a;

其实我是这么认为的,就像数学里面的“设”一样,设出一个未知数a,当然我们也可以为它设置初始值。然后我们就可以使用这个a了,因为a是没有但是我们要用到的,所以要先声明。至于要用那种数据类型完全取决于自己的需求。

2.数据类型的本质是什么?

其实数据类型的本质就是“固定内存块大小的别名”,为什么这么说呢?

我们可以做一个测试用例:

#include

#include

int main() {

printf("sizeof(int) : %d\n", sizeof(int));

printf("sizeof(float) : %d\n", sizeof(float));

printf("sizeof(double) : %d\n", sizeof(double));

printf("sizeof(long) : %d\n", sizeof(long));

printf("sizeof(char) : %d\n", sizeof(char));

system("pause");

return 0;

}123456789101112123456789101112

结果:

sizeof(int) : 4

sizeof(float) : 4

sizeof(double) : 8

sizeof(long) : 4

sizeof(char) : 1

从上面的测试来看,各种数据类型的大小都是固定的,我们声明变量的时候就是在告诉编译器我要申请这么大的一块内存,而这块内存的标号就是这个变量的名字。所以变量和内存是两码事,我们是通过变量向内存里边读写数据而不是向这个变量在读写数据。

学习C语言最重要的就是要搞懂内存的概念,C语言与其他高级语言比如C#,Java不同,C语言是弱类型的语言,对数据类型没有那么严格的检查。所以自己要务必分清楚数据类型和变量的关系,往往就是因为概念不清晰而导致BUG。