C++(3)_常量

常量

常量可以是任何的基本数据类型,可分为整型数字浮点数字字符字符串布尔值
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

整型常量

整数常量可以是十进制八进制十六进制的常量。
前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制

212         // 合法的
215u        // 合法的
0xFeeL      // 合法的
078         // 非法的:8 不是八进制的数字
032UU       // 非法的:不能重复后缀

85         // 十进制
0213       // 八进制 
0x4b       // 十六进制 
30         // 整数 
30u        // 无符号整数 
30l        // 长整数 
30ul       // 无符号长整数

用十六进制进行赋值有时候是比较好用的,尤其进行位操作时。
0x f f f f f f f f --> -1;
0x00000000 --> 0;

如果想以八进制或者十六进制数输出,可以使用相应的控制符:
八进制(Octal):oct
十六进制:hex
十进制:dec
以上控制符可以控制cout以相应的形式进行输出。

#include<iostream>
using namespace std;
int main(){
    int n_max = 42;
    cout << n_max << endl;
    cout<<hex;
    cout<<n_max<<endl;
    cout<<oct;
    cout<<n_max<<endl;
return 0;
}
/*输出:
42
2a
52*/

实数型常量

两种表示方法:普通表示法、科学计数法。
着重注意科学计数法的表达。
3.14e2, 即3.14×10^2
-3.14e-2, 即-3.14×10^-2
科学计数表达中,‘e’ 可用 ‘E’替换。

布尔型常量

只有两个:true和false。但是我们不应把 true 的值看成 1,把 false 的值看成 0,它表达逻辑的“真”和“假”。

字符型常量

字符常量是括在单引号中的,如 ‘a’,‘\t’ 等。可以用来给字符型变量进行赋值,同时还能给整型变量进行赋值,即将字符对应的ASCLII码赋值给整型变量。
值得注意的是,其中有一类字符常量,以 ‘\’ 开头,如 ‘\n’, ‘\t’, ‘\r’ 等。其被称为“转义字符”。所谓“转义”指的是将‘\’之后的字符转换成其他的含义。下面是一些常用的转义字符。

转义字符含义ASCII
\n换行,将输出位置移到下一行开头10
\r回车,将输出位置移到本行开头13
\t制表符,(类似Tab键)9
\b退格,输出位置回退一个字符8
\反斜杠“\”92
单引号“ ’ ”39
"双引号“ ’ ”34
\?问号“ ’ ”63
\0空字符0
\ddd (如\123)八进制数,代表对应字符的ASCII码ddd(八进制)
\xhh(如\x61)十六进制数,代表对应字符的ASCII码hh(十六进制)

字符串常量

字符串字面值或常量是括在双引号 “” 中的。“ ” 和 ’ ‘ 是不同的,对应变量相互之间不能赋值。
若定义字符串变量,需在头文件中包含string文件#include <string>
可以使用空格做分隔符,把一个很长的字符串常量进行分行
“Hello, \
dear”
字符串中可包含转义字符。

cout << "ABCD\bEFG" << endl;
cout << "UVWX\rYZ" << endl;
/*输出:
 ABCEFG
 YZWX
 */

定义常量

有两种方式来定义常量;

  1. #define预处理器;
  2. const关键字。

#define 预处理器

#define定义符号常量;
#define identifier value
声明在主函数之外,不用带分号。

#include <iostream>
using namespace std;
 
#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'
 
int main()
{
 
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

//输出:50

const 关键字

const定义常变量;
const type variable = value;
需描述在主函数内,带分号,在定义时一定要赋值,之后不能对其赋值或者修改

#include <iostream>
using namespace std;
 
int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

//输出:50

为什么要定义变量?
对于程序中多次出现的数值变量,用一个“常量名”代表具体的“常量值”,之后在程序中出现该“常量名”即相当于其代表的“常量值”,这样便于程序的修改,当该常量的值要改变时,不用在程序中寻找出所有的值进行修改,只需在定义变量的地方修改对应的“常量值”即可。

请注意:

  1. 把常量定义为大写字母形式,是一个很好的编程实践
  2. 多使用符号常量,少使用数值常量,是重要的C语言变成好习惯;
  3. 而在C++中,连符号常量(#define)都应该少用,尽可能使用常变量(const),因为宏定义#define不包含类型信息,这种替换没有类型安全检查,有人重新修改也不会有产生警告。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值