[C].数据类型

 C语言规定在使用一个数据之前,必须定义数据的类型,因为数据类型决定了数据占用内存的字节数.取值范围以及在其上可以进行的操作等.

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

  其实数据类型的本质就是“固定内存块大小的别名”,为什么这么说呢? 我们可以做一个测试用例:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main() {
 5     printf("sizeof(int) : %d\n", sizeof(int));
 6     printf("sizeof(float) : %d\n", sizeof(float));
 7     printf("sizeof(double) : %d\n", sizeof(double));
 8     printf("sizeof(long) : %d\n", sizeof(long));
 9     printf("sizeof(char) : %d\n", sizeof(char));
10     system("pause");
11     return 0;
12 }
13 /*
14 结果: 
15 sizeof(int) : 4 
16 sizeof(float) : 4 
17 sizeof(double) : 8 
18 sizeof(long) : 4 
19 sizeof(char) : 1
20 
21 */
View Code

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

猜你喜欢

转载自www.cnblogs.com/wangguokai/p/9083321.html