![946b0dcc285b74f829e908305e8133d0.png](https://i-blog.csdnimg.cn/blog_migrate/6178155317c44d8b4f4597572b3ad3df.jpeg)
很早以前,就有人称C语言为“中级语言”——“汇编语言”太接近底层,可以称为低级语言;而Java、Python、Go这些语言更接近我们的逻辑思维,可以称为高级语言;C语言既可用于底层操作,又兼顾我们的逻辑思维,因此被称为中级语言。
![d8c589c891de4aaf74f0f0785efe432f.png](https://i-blog.csdnimg.cn/blog_migrate/7bbef3df7d0c3773f3031b56ed1edab4.png)
中级语言非常形象地描述了C语言的特点,学习C语言,可以让您领略与Java、Python、Go语言不同的风景。咱们先通过数据类型来感受一下吧!
本文的操作基于CygWin环境,使用gcc作为编译器,如果您对此没有概念,建议您参照这篇文档学习一下:《让我们开启C语言的征程》。
第1步:启动CygWin
![30e798707ad6fa11fc7bc884c1c387ea.png](https://i-blog.csdnimg.cn/blog_migrate/09be5d0c2b9a4dacb0789c6fab9418d8.png)
第2步:输入pwd命令,您可以看到当前的路径是/home/Administrator
![7620a2bf0c0d7b9c1133fae976dec62b.png](https://i-blog.csdnimg.cn/blog_migrate/594bd9de2ef726147da9b4253ccae36f.png)
第3步:输入mkdir DataType命令,建立DataType目录
![580bfe6de63dbe90be9ce6894fdf703d.png](https://i-blog.csdnimg.cn/blog_migrate/0f20da385487c7df90d7e6c656ff965c.png)
第4步:输入cd DataType命令,进入到DataType子目录
![5fdbda3f0a5f926a26d0d837f3a33912.png](https://i-blog.csdnimg.cn/blog_migrate/cf414e14f0f09d7c0bf945d5bcb3ec04.png)
第5步:CygWin的/home/Administrator/DataType目录,也就是Windows的C:cygwinhomeAdministratorDataType目录,我们在这个目录中用记事本,建立DataType.c文件,内容如下:
#include <stdio.h>
#include <string.h>
#include <stdint.h>
int main()
{
char pcString[10];
char cChar;
int8_t i8Integer;
int16_t i16Integer;
int32_t i32Integer;
strcpy(pcString, "ABCD");
cChar = *pcString;
i8Integer = *(int8_t*)pcString;
i16Integer = *(int16_t*)pcString;
i32Integer = *(int32_t*)pcString;
printf("pcString is [%s]n", pcString);
printf("cChar is [%c]n", cChar);
printf("i8Integer is [%d]n", i8Integer);
printf("i16Integer is [%d]n", i16Integer);
printf("i32Integer is [%d]n", i32Integer);
return 0;
}
![33350974fee2b47a5268f02a897eb88b.png](https://i-blog.csdnimg.cn/blog_migrate/40b5f04b35c3a2ebf5baf8734ee6814a.jpeg)
第6步:在CygWin中输入gcc DataType.c -o DataType命令,编译自己编写的程序
![f8a8018fbb32af9eb0b00f4e6a95424e.png](https://i-blog.csdnimg.cn/blog_migrate/5a54b63f31459c4bdce53fed8b6ef8b4.png)
第7步:执行编译命令后,发现C:cygwinhomeAdministratorDataType目录中生成了DataType.exe文件
![71604f6992da3a912eee97c12709069b.png](https://i-blog.csdnimg.cn/blog_migrate/7a89952a146e13b75a8c097efffbb162.png)
![72f63440845a1e16207d96d882b4acb6.png](https://i-blog.csdnimg.cn/blog_migrate/eda7286e23f6010efcf620a376a24333.png)
第8步:在CygWin中输入./DataType执行生成的可执行程序,得到下面的结果
$ ./DataType
pcString is [ABCD]
cChar is [A]
i8Integer is [65]
i16Integer is [16961]
i32Integer is [1145258561]
![8b69e9bf7b27b587f4f0599902e1be31.png](https://i-blog.csdnimg.cn/blog_migrate/7971200a5e466721185a2200d2e45668.png)
至此,程序编写完毕,我们开始解释程序的含义:
(1)我们定义了一个字符串类型pcString,内容是“ABCD”;
(2)如果我们把pcString当成字符串,它就是“ABCD”;
(3)如果我们把pcString当成字符,它就是‘A’;
(4)如果我们把pcString当成-128~+127范围的整数,它就是65;
(5)如果我们把pcString当成-32768~+32767范围的整数,它就是16961;
(6)如果我们把pcString当成-2147483648~+-2147483648范围的整数,它就是1145258561。
说到这里,您可能弄糊涂了,字符串怎么变成忽大忽小的整数了?
![67ba15532f1a658b79c436de6cea7623.png](https://i-blog.csdnimg.cn/blog_migrate/f237a89e2cfcf31cb5b71218aac46102.png)
前面说过,C语言是中级语言,可以直通计算机硬件层,在计算机的存储器中,根本就没有ABCD、65、16961这些东西,这些是我们调用C语言的函数,按我们的要求在屏幕上画出来的,存储器中pcString只有这样枯燥的二进制比特位:
![217a6ad8e8d6ca85f58510539d8aab35.png](https://i-blog.csdnimg.cn/blog_migrate/d9114049e791e6ab4696c76ee5c8a887.png)
这些二进制的比特位,不仅可以表示字符串、字符、整数、小数,还可以表示图像、声音、视频等各种信息,而字符串、字符、整数、小数、图像、声音、视频都可以在广义概念上被称为数据类型。
咱们用自己的方式,对数据类型做一个总结吧:让计算机对一串二进制比特位进行解释和计算的方式。
写到这里,我们戛然而止吧,因为您现在最需要的是思索和消化
![bb0128985f3ec40018e4f43d31c40654.png](https://i-blog.csdnimg.cn/blog_migrate/b040ac53e50933554589f6c3ce085827.png)