首页 > 学院 > 开发设计 > 正文

常量

2019-11-08 03:22:07
字体:
来源:转载
供稿:网友

一个常量(constant)是一个有固定值的表达式。

像变量一样,常量也是有数据类型的。默认的整数字常量的类型为int型。我们可以通过在后面加字母u或l来迫使它为无符号(unsigned)的类型或长整型(long)。

75         // int75u        // unsigned int75l        // long75ul       // unsigned long

浮点数的默认数据类型为double。如果你想使用float或long double类型,可以在后面加f或l后缀,同样大小写都可以:

3.14159L   // long double6.02e23f   // float 
意在表示单独字符的时候,我们用单引号(single quotes (')),在表示字符串或多于一个字符的时候我们用双引号(double quotes ("))

转义字符:

另外你可以数字ASCII 码表示一个字符,这种表示方式是在反斜杠(/)之后加以8进制数或十六进制数表示的ASCII 码。在第一种(八进制octal)表示中,数字必需紧跟反斜杠(例如/23/40),第二种(十六进制hexacedimal),必须在数字之前写一个x字符(例如/x20/x4A)。

最后如果我们想让字符串使用宽字符(wchar_t),而不是窄字符(char),可以在常量的前面加前缀L:

L"This is a wide character string"

宽字符通常用来存储非英语字符,比如中文字符,一个字符占两个字节。

实际上编译器在遇到#define指令的时候做的只是把任何出现这些 常量名(在前面的例子中为PI, NEWLINE或WIDTH)的地方替换成他们被定义为的代码(分别为3.14159265, '/n'和100)。因此,由#define定义的常量被称为宏常量macro constants。

#define 指令不是代码语句,它是预处理器指令,因此指令行末尾不需要加分号semicolon (;) 。如果你在宏定义行末尾加了分号(;) ,当预处理器在程序中做常量替换的时候,分号也会被加到被替换的行中,这样可能导致错误。

通过使用const前缀,你可以定义指定类型的常量,就像定义一个变量一样:

const int width = 100;const char tab = '/t';const zip = 12440;

如果没有指定类型(如上面最后例子中最后一行),编译器会假设常量为整型int。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表