在C语言中,常量有四种形式:
【1】字面常量
就可以理解为是简单的直接给定,例如给定一个浮点数:3.14159;给定一个整数:100;给定一个字符'a' ;给定一串字符串“wangyiseng”。暂时还不知道有何作用,但是它是一种存在形式。
![](https://i-blog.csdnimg.cn/blog_migrate/76ce257dfbeea84f68073090c04315e6.png)
【2】const修饰的常变量
const是一个关键字,用于限定一个变量为只读。声明如下:
![](https://i-blog.csdnimg.cn/blog_migrate/853d50e930269d5869acf4c515468ec7.png)
num在程序中不可更改,值为10。
这使得num成为一个只读值。也就是说,我们可以使用num,比如打印等,但是不能对它的值进行更改。
![](https://i-blog.csdnimg.cn/blog_migrate/ff86a25db3b8637b6fe5efb27928a698.png)
我们来看,其实通过const修饰后,它本质上还是一个变量,只不过叫做常变量而已。通过数组的定义就能很好的说明。数组的大小必需得是一个不可变的常量,但通过const修饰后,虽然它的值不能被改变,但是编译器报错,至少能证明他不是一个不可变的常量。
![](https://i-blog.csdnimg.cn/blog_migrate/0fa8d4bd09f9325a360caeb9942da208.png)
【3】#define定义的标识符常量
在《C Peimer Plus》中也叫做“明示常量”。它的使用比较简单,我们通过实例来说明:
它的声明是这样的:
![](https://i-blog.csdnimg.cn/blog_migrate/8529b8e5b9cb59bec99e1312e0daf482.png)
通俗点说,在这个工程中凡是见到MAX,它就是:1000000。
而且它的值不可再被改变
![](https://i-blog.csdnimg.cn/blog_migrate/7f11cf0927fe9529e241fc83fd6c8e7f.png)
他的使用是这样的:
![](https://i-blog.csdnimg.cn/blog_migrate/4a567c1033763e8f00676c9f83850b6a.png)
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/e3b855950267069f2de12d5b56e29b41.png)
【4】枚举常量
枚举,依照字面意思理解就是:一一列举出来,在外面日常的生活中很多是可以列举的,比如性别:男或女,在软件选项中最多外加一个保密。还有星期也是可以列举的:星期一、二、三、四......
它的声明是这样的:
![](https://i-blog.csdnimg.cn/blog_migrate/21421aeba725bb2467ea83b064e565a8.png)
它只可取列举出的值,不能赋其它值给它,因为它是常量,值不可被改变。
![](https://i-blog.csdnimg.cn/blog_migrate/7a3bc849a0579fbda4bae502caa55c46.png)
我们看看它为什么是常量,我们将其一一答应出来看结果:
![](https://i-blog.csdnimg.cn/blog_migrate/22819da2f8ec994527687b061b314f0c.png)
结果为:
![](https://i-blog.csdnimg.cn/blog_migrate/85f5e71c1cbeec83da0f1453ce31d124.png)
很明显我们看到他的值为一个确定的数字,当然这里是可以对其进行赋初值的:
![](https://i-blog.csdnimg.cn/blog_migrate/13697b2cb6da129fb0e34fea972bb32f.png)
继续运行代码,看他的输出值:
![](https://i-blog.csdnimg.cn/blog_migrate/d06204f4275a31078cadbf228abc54c3.png)
因为赋初值3,它后的值就依次递增1。