Skip to main content

6 数据类型到底是什么

开场

大家好!我是村长!把复杂的编程讲简单。

今天我们聊一个人人懂,但人人说不清的概念:数据类型。

我敢打赌,视频前的你, 闭着眼睛都能写出int、double、string。 但如果我问你: 数据类型到底是什么? 大概率,你会当场卡壳。 不信试试,先暂停视频,评论区回答一下。

(LOGO 动画)

奇奇:村长村长,那数据类型到底是什么呀?

村长:简单来说,数据类型就是一套“数据分类规则”。 如果把数据比作快递包裹,那数据类型,就是包裹上贴的标签, 如:‘冷藏’‘易碎’‘轻拿轻放’。 标签的作用:告诉快递小哥:如何对待包裹。

奇奇:原来是这样!那数据具体是怎么分类的呢?

村长:C#把数据分成十几种类型,但最常用、最基础的只有 5 种 分别是 int、 double、 string、char和 bool 类型。 记住!数据类型不是数据本身,而是数据的身份。 int 表示整数 double 表示小数 string 表示文本,也叫字符串 char 表示单个字符 bool 表示真假两种状态

整数就是不带小数点的数字,不需要引号包裹,包括正整数、负整数和零, 小数就是带小数点的数字,也不需要引号包裹,正负都可以 文本就是使用英文双引号,包裹的一串字符,字符可长可短,只要有双引号,里面写啥都行。 字符就是“二单”,使用单引号包裹的单个字符,注意:必须是单引号,必须是单字符。 布尔类型只有两个值,true 表示真,false 表示假,专门用来做判断

奇奇:记住了记住了!让我练练,你帮我看看有没有错

Console.WriteLine(18); // 先输入 cw 再按下 Tab 键,在小括号中输入整数18,不用带引号
Console.WriteLine(3.14); // 接着再输入小数 3.14,也不用带引号
Console.WriteLine("hello world"); // 输入文本hello world,必须带英文双引号
Console.WriteLine('A'); //
Console.WriteLine('AB'); //
输入一个字符 A,必须带英文单引号
如果我作死在单引号里放两个字,编辑器立刻给我爆红
我尝试运行一下
VS提示我发生生成错误
我点击“否”
在下面的错误列表中提示我:字符太多
看来真的不能乱来
关闭错误列表
接着输入一个布尔类型的特殊值true
也不用带引号
如果我写成 带双引号的"true" ,那就不是布尔值了,而是一个字符串 true——长得像,但本质完全不同。

Console.WriteLine(true); // 输入一个布尔类型的特殊值true,也不用带引号

村长:unbelievable!这5种类型已经被你拿捏了。

奇奇:不过村长,我不明白:为什么要分 int、double、string 这么多类型?

村长:问得好!既然都是数据,为啥还要分门别类?有三个硬核原因,也是为了解决三个关键问题

原因1. 计算机是个文盲,只认识0 和 1 我们看到的 Hello,在计算机眼里,其实,是一个 0和1组成的二进制串: 01001000...(一堆01)。 你电脑里的照片、电影、代码,最终全是0和1。 计算机根本不懂什么是文字、什么叫整数和小数 对计算机来说,世界上只有两种东西:0 和 1 剩下的,都是人类强行赋予它的意义。

那么,问题来了:当你写 Console.WriteLine(18)时,计算机怎么知道18是整数? 计算机陷入沉思,疯狂思考,风扇嗡嗡转,cpu 快被干冒烟 这时,大佬出场,编译器绝对是幕后大佬。 它一看到 18——纯数字、没小数点、没引号——根据刚刚的分类规则,编译器立刻推断出:这是 int 类型。 然后给这串0和 1贴上“int”标签,就像快递包裹贴上“易碎”标签。 把光标移到 18 上方, 你能看到标签:System.Int32,这就是int标签,它是int类型的全称。 有了这个标签,计算机就知道:哦,这是整数类型,我要按整数处理。 其他类型也是同样道理。

原因 2:数据不同,处理方式不同 数据类型,不只是给数据分类。 更重要的是,它决定:这个数据能做什么。

举个非常经典的例子:

两个整数1和1相加,结果是2 但是,两个字符串 "1" 和 "1"相加,结果,却变成了"11"。 注意这是字符串 11,不是整数 11。 这是因为字符串遇到加号,表示把两段文本,拼接在一起,意义完全不同。 同样的‘1’和‘+’,在整数眼里,结果就是 2,在字符串眼里,结果就是 11 这就是因为数据类型不同,计算机会采用完全不同的处理方式。 因此数据类型,不仅决定这是什么数据。 还决定:数据能做什么。

原因3:数据不同存储方式不同

除了规定数据是什么,数据能做什么。 数据类型还会告诉计算机:应该如何存储这些数据。 快递员不会把生鲜和C#教材,放进同一个快递箱。 数据也是一样。不同类型的数据,需要不同的存储方式。

整数有整数的存储方式。 字符串有字符串的存储方式。 不过这是后面变量课程的内容。 现阶段你只需要知道: 不同类型的数据,计算机会采用完全不同的存储方式。

学到这里, 你可能发现: 数据类型,其实,没有想象中那么神秘。 它做的事情非常简单: 先给数据一个身份。再告诉计算机,该怎么对待它。

结束语

到这里,今天的课程就结束了。

关于数据类型,你只需记住一句话:

数据类型就是数据的身份——它告诉计算机这是什么、能干什么、怎么存储。

如果这节课你没听懂,那绝对是我没讲好,你尽管留言吐槽,我会认真阅读。 如果你听懂了,觉得有收获, 记得点赞、收藏、关注。 我是村长。 把复杂的编程讲简单。 我们下期见。

下期预告:数据有了类型。那接下来如何存储数据?为什么必须存储数据?

请看下期:变量到底是什么。

(分类表) 数据类型 说明 合法数据 示例 int 表示整数 正整数、负整数、零 100,0,-5 double 表示小数 带小数点的数字 3.14,-9.0 string 表示文本 英文双引号包裹的一切字符序列 "奇奇","12306" char 表示单字符 英文单引号包裹的单个字符 'A','?','中' bool 表示真假 true 或 false true

(分类表的口播稿)