本章节我们一起认识一下数据的容器:变量和常量。
先说说变量,为什么说这是数据的容器呢?回答这个问题前,我们先探讨一下数学里面的变量,数学里面变量通常跟函数一块用了,还分什么自变量和因变量,但是无论怎么分,变量总归起来就是会变化的量,所以才叫变量。回过头来回答那个问题,程序里面的变量,也是会变的量,我们讲一个数据存入变量中,并且随时可以改变,这就是变量。
那么常量呢?常量其实就是无法改变的量,一经定义,直到程序结束都是无法改变的量,并且常量刚定义就必须给定一个值,变量不必须给值。
数学的变量有因变量和自变量之分,我们程序的变量也有变量类型的区分,为什么程序的变量要分类呢?我们一起以下几个例子:
以下图片是农夫山泉的广告,我们不关注广告内容,我们关注农夫山泉的包装瓶子。
正如瓶子上写的,农夫山泉一瓶能装550毫升的水,那如果我想用这样一个瓶子装下图的板砖,能装得下吗?
这个问题不需要思考,因为都知道是装不下的,且是绝对的。
我们分析一下装不下的原因。首先,形状不同,农夫山泉瓶子瓶体是圆柱形,顶部是圆锥形,而板砖是长方体形,因此,入口就进不去,就进去了,板砖也体积太大,装不下。
于是这就出现了一个问题,我们拿一个容器装一样东西,有两个前提条件,第一是形状得符合,第二是容器有足够的空间容纳。
程序的变量也一样,有类型和容量之分。我们先说变量的类型。
我们一起看这张思维导图,由此可知,数据的类型,也就是变量的类型,大致分为三种,分别是整形、浮点型、字符型,并不是说C语言只有这三种类型,而是常用的有这三种,其他类型后续会逐渐讲到。
这里我们再讲解一下,变量分为有符号和无符号又是什么意思呢?我们知道,在数学中数字分为负数和正数,无符号就是没有符号,只能存储正数,有符号正数负数都可以存储。
整形,既整数类型,但是我们不叫整数型,而是叫整形,这种类型的变量只能存储整数。如数字“1”、“12345”、“9876”、“-432”、“-12”等,但是这里要注意,无符号类型不能存储负数,有符号类型才能存储负数。
整形数据的大小和存储容量如下表:
浮点型,浮点型既小数类型,能存储带有小数点的数据。如“3.1415926”、“1.234”、“-234.123”、“0.125”等,但是要注意的是无符号只能存储正数,有符号正负数都可以存储。
浮点类数据的大小和存储范围如下表:
字符型变量只能存储单个字符,如“a”、“B”、“F”、“t”等。值得注意的是字符类型也有无符号和有符号之分,难道字母a还有-a的说法吗?其实并不是,后面我们会专门一章节讲解关于字符类型与整数类型的关系和转换,其中涉及ASCII码,因此会有负的字符类型,我们本章节先做了解即可。
字符型数据大小和存储范围如下表:
以上就是关于变量内容,那么常量呢?何为常量,即不可改变的量,常量仅需在变量类型前面加上关键字“const”即可,如“const int”就是整形常量,“const char”就是字符型常量,“const double”就是双精度浮点型常量。
最后,变量如何在程序中使用,我们留到下一章节进行讲解。