Ok. 那刚刚呢我们跟大家介绍了各种各样的数据类型。
而且呢, 我们讲的都是用这些数据类型如何来定义变量。 那么其实啊,
对於常量也是一样的。 常量呢, 也是有数据类型的。
那什么叫常量呢? 那常量的数据类型怎么去表示呢?下面我们就来讨论一下。
所谓常量啊,顾名思义,是指啊,在程序的运行
过程中,它的值会保持不变的那些量。 啊,那么在 C 或者
C++ 中呢,常量又有两种。 一种叫做 “字面常量”
。比方说, -1, 0, 123, 4.6,-.12, 1.23,
等等这些量 只要你写在程序里面的数,
都是 “字面常量”。还有一类常量呢,叫做 “符号常量”。
就是用一个标识符来表示的一个常量。 啊,这叫
“符号常量”。就是说,我用一个标识符来代表一个不会变的数。
我们来看一个例子就知道了。那么在这个例子里头呢,是这样的。
我们需要计算圆的面积。所以说啊,我们就要用到圆周率。
那么在这儿呢,我们就定义了一个 “符号常量”。
这个符号常量的名字叫做 PI, "PI",给它付的储值是 3.14159。 怎么去定义一个
“符号常量” 呢 ?跟变量的定义啊,非常的类似。在标识符的前面指明这个
“符号常量” 的类型,比方说它是 double 型。然后在这个类型的前面再加一个关键值,叫做
const。 那么加上这个关键值之后呢, 我们就知道后面的这个 PI 表示一个
“符号常量”。 而且呢,在程序运行的过程中,PI
的值呢不能再被改变。 也就是说,只要你在第一次的时候
给它付值是多少,那么在以后整个的这个程序里头, PI 的值呢,都不会再被改变了。
那这样做有什么好处呢 ? 一个非常显而易见的好处就是说,在程序中啊,我就不用再去写
3.14159 了,省事, 而且呢,程序容易被看懂。
那还有另一个好处就是,如果我想在程序中改变这个值的话,
我只需要把这个程序翻出来,然后在最初的这个地方把付出的这个地方改变了, 那么程序里头相应的所有的地方全部都会改变。
那么写程序的效率就会提高。那么还有一个更重要的优点就是说,
一旦你定义了一个 ”符号常量”, 那么在程序里头没有任何地方可以去修改它的值。
我们可以确保这个 “符号常量” 的值在程序中不会被改变。
Ok, 这是关于 “字面常量” 和 “符号常量”。 那么,我们写的程序的
常量有没有类型呢 ?比方说,看这儿, PI
= 3.14159。 我们都知道 3.14159
是一个浮点型的数。 但是,它具体是一个什么类型的浮点数呢?是个 float
型呢,还是 double 型呢? 还是 long double 型的呢?有的同学就说,那这还需要区分吗
? 当然。因为它也是一个数。那么在程序里头,所有的数都是有类型的。
常量也一样。常量也有它的类型。那怎么去在程序里头
明确的标识一个常量的类型呢?那么在程序中啊,
常量的类型是通过常量的后缀来表示的。
什么意思呢?我们来看一个例子。 对这样的一行程序,n = 10000L,
在前一行程序中, L 就是一个后缀。它表示什么含义呢?
它表示啊,告诉计算机, 把这个前面的
10000 当作一个长整型的数来处理。那么,
在这个程序里头呢,L 既可以大写,也可以小写。
那有的同学说,那如果不写呢,我如果不写 L , 不写 L
的话,那么计算机它就把它当作一个整型的数 来处理了。类似的,我们可以做一些其它的一种标注。比方说,
对于十六进制类型的数据, 我一样可以做标注。标注 L。
那就依然告诉程序,把这个数当作一个长整型的十六进制数,啊来处理。
那么还有一些其它的后缀,比方说,U。
U 呢,就表示告诉计算机,把前面的这个数当作一个
无符号的整型数来处理。这些后缀呢,还可以联合起来使用。
比方说,比方说这样的一个数, 07777LU , 首先这个数呢以
0 开头,表示它是一个八进制的数。然后呢, 又以 L
和 U 结尾, 那就意味着呢,它要告诉程序,把这个八进制之数,
看作一个无符号型的长整型的量。这是整型。
那么这个浮点型呢,也一样。
啊,比方说,当我们写出一个数,x=3.1415 加一个 F, 那就表示,希望计算机把
3.1415 啊, 当作一个单精度的浮点数啊来考虑,来使用。
y=3.1415L , 那么这样是 L
是当作 长双精度浮点数去使用。 那么有的同学说如果不写呢
? 不写的话,那么浮点数就默认为是 double 类型的。
就像方才我们定的这个程序,PI 呢, 等于 3.14159 ,
我不写任何东西,在这个地方呢,程序就把它认为是一个
双精度类型的。那通过这个我们就可以知道,那常量啊,也是有类型的。
而且常量的类型呢,是通过这些后缀来表示的。这些后缀呢,既可以大写,又可以小写。
我们在程序中如果想强调或者说明一个常量的类型的话,我们就可以采用这样的办法来处理。
Ok, 这是关于常量。