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

来源:互联网 发布:mac 桌面上 ds.store 编辑:程序博客网 时间:2024/05/18 01:04

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

这里写图片描述

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

1.什么是数据类型?

C语言为我们提供了int, float等基本数据类型,这些都是表示基本数据用的。然而C语言也为我们提供了复杂的数据类型,比如struct, union等。这些可以由基本数据类型抽象组合而成,可以对应现实世界的任何抽象事物,方便我们编写程序。
那我们怎么去理解数据类型。我们通常用一个数据类型,比如int 去定义一个变量,就像这样:
int a;
其实我是这么认为的,就像数学里面的“设”一样,设出一个未知数a,当然我们也可以为它设置初始值。然后我们就可以使用这个a了,因为a是没有但是我们要用到的,所以要先声明。至于要用那种数据类型完全取决于自己的需求。

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

其实数据类型的本质就是“固定内存块大小的别名”,为什么这么说呢?我们可以做一个测试用例:
#include <stdio.h>#include <stdlib.h>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;}

结果:
sizeof(int) : 4
sizeof(float) : 4
sizeof(double) : 8
sizeof(long) : 4
sizeof(char) : 1

从上面的测试来看,各种数据类型的大小都是固定的,我们声明变量的时候就是在告诉编译器我要申请这么大的一块内存,而这块内存的标号就是这个变量的名字。所以变量和内存是两码事,我们是通过变量向内存里边读写数据而不是向这个变量在读写数据。
学习C语言最重要的就是要搞懂内存的概念,C语言与其他高级语言比如C#,java不同,C语言是弱类型的语言,对数据类型没有那么严格的检查。所以自己要务必分清楚数据类型和变量的关系,往往就是因为概念不清晰而导致BUG。

0 0
原创粉丝点击