C++有两种常数:文字,符号。
常量
字面值常量文字数字插入代码。他们是常数,因为你不能改变他们的价值观。
1
int x = 5;// 5是一个字面常量
常量可以后缀,确定其类型。整数常量可以有一个u或U后缀,意味着他们是无符号的。整数常量也可以有一个L或者l后缀,这意味着他们是长整数。然而,这些后缀通常是可选的,因为编译器通常可以从上下文中不断告诉你需要什么样的。
1
2
无符号整型值= 5;/ /无符号常量
长nvalue2 = 5;/长常数
默认情况下,浮点字面常量有一种双。将它们转换成浮点值,F或F可以使用后缀:
1
浮fvalue = 5.0f;/浮动常数
浮点常量也可以使用L或者l后缀让他们长的双打。
一般来说,这是一个好主意,尽量避免使用常量,不是0或1。更多的细节,你可以回顾幻数的部分,以及为什么它们是个坏主意。
符号常量
当你在以前的教训,你可以使用#定义预处理器指令以声明符号常量:
1
2
#定义yen_per_dollar 122
int Nyen = ndollars * yen_per_dollar;
有两个主要问题声明符号常量使用#定义。首先,因为它们是由预处理器解决,这与定义的值代替符号名称,#定义符号常量不显示在调试器。因此,如果你只看到声明int Nyen = ndollars * yen_per_dollar;,你将不得不去寻找#定义声明以找出真正的价值是用yen_per_dollar。
第二,#定义的值总是具有全局范围(我们将谈论的一节中的局部和全局变量)。这意味着一种价值#在一段代码的定义可能有一个命名冲突与价值#定义具有相同的名称在另一块代码。
一个更好的方式来做符号常量是通过使用const关键字。const变量必须指定一个值时宣布,然后这个值不能改变的。这是上面的代码片段应该写的方式:
1
2
const int nyenperdollar = 122;
int Nyen = ndollars * nyenperdollar;
声明一个变量作为const阻止我们无意中更改它的值:
1
2
const int nyenperdollar = 122;
nyenperdollar = 123;//编译器错误!
虽然一个恒定的变量似乎是矛盾的,他们可以在帮助文件代码和避免幻数是非常有用的。有些程序员喜欢用大写的名字为const变量(匹配的#定义的值的类型)。然而,我们将使用正常的变量命名规则,这是更常见的。const变量的行为就像在任何情况下,除了正常的变量,他们不能分配给。
2.9匈牙利表示法
指数