常量指不会随着程序运行而改变的量,分为两种:字面量和符号常量
字面量
- 字面量就是存放在变量中的数据。
- 字面量经常会被装到变量中使用,这个操作叫做赋值,一般写法为
变量名 = 字面量
。
// 小戴需要2瓶可乐,3个爆米花
coke = 2;
popcorn = 3;
其中2和3就是字面量。
- 用来赋值给变量的是表示固定值的数据,称为字面量
- 字面量可以作为数字或文本直接在代码中使用
- 字面量在程序运行过程中不能够被改变,也不能被赋值
- 装入变量中的数据本身不能再装入新的数据
整数字面量
- 整数字面量是没有任何小数或指数部分的数字字面量,与数学中的整数直接关联。
- 十进制:直接写出的整数。
例如:0,23,-1024
- 八进制:以数字0开头的整数,有效数字为0~7,并且不带有正负号。
例如:0126,0163
- 十六进制:以0x或0X开头的整数,有效数字为0~9、A~F(a~f),并且不带有正负号。
例如:0x12a,0xf39
- 十进制:直接写出的整数。
浮点字面量
- 浮点字面量是有分数形式或指数形式的数字字面量,与数学中的小数直接关联。
-
小数形式:由数字和小数点组成
例如:0.66,30.0,14.15926
-
指数形式:在数学中,一个可以用幂的形式来表示的形式。
在C语言中,则以e或E后跟一个整数来表示以10为底数的幂数。- e或E的左侧必须要有数字
- e或E的右侧为幂次的数值,必须为整数
上述小数可以等价表示为:6.6E-1,30.0e0,0.01415926E3
-
字符字面量
-
主要用来表达常见字符的常量,分为单字符字面量与转义符字面量。
-
单字符字面量:
通过将单个字符括在单引号内来创建字符字面量。
例如:'a','m','F','2','}'等
-
转义符字面量:
使用’'开头的转义字符序列来表示一个特殊字符。
Tips:有时,在C++编程中必须使用不能键入或具有特殊含义的字符。例如,换行符(回车),制表符,问号,引号等。为了使用这些字符,就会使用’'开头的转义字符序列用来表示一个特殊字符。
例如:
'\n'
表示换行符;
'\t'
表示制表符;
'\''
表示单引号字符(不被解析成字符外的单引号);
'\\'
表示真正的斜杠字符。
所有的字符字面量在计算机里都是有一个编码的,为了避免大家用不同的编码,造成混乱,美国的组织就出台了ASCII编码(American Standard Code for Information Interchange:美国信息交换标准代码),所有字符都采用ASCII编码,共有128个字符。每个字符都对应着一个0~127之间的整数。
下面两个表格中,深灰色的列就是其右侧字符对应的ASCII编码。
字符串字面量
- 字符串字面量是由一对双引号括起来的字符序列
- 字符串中可以包含类似于字符字面量普通字符以及转义字符
- 字符串除了存储所包含的字符外,还额外包含一个结束标志’\0’
- ‘\0’:结束符; ASCII编码对应数值为0的字符
例如:使用转义字符打印一个3行4列的星号长方形:
#include<iostream> using namespace std; int main() { // 每行都输出4个*和一个换行符 cout << "****\n" ; cout << "****\n" ; cout << "****\n" ; return 0; }
符号常量
- 在C++中,随着程序运算不改变的量叫做符号常量,可以使用const关键字来定义并且初始化:
const int kCokePrice = 5;
const int kPopcornPrice = 10;
- const是⼀个修饰符,加在数据类型int的前⾯,用来给这个变量加上一个不变的属性
- 初始化时也可以将修饰符const与数据类型int调换位置,写成
int const kCokePrice = 5;
- 初始化时也可以将修饰符const与数据类型int调换位置,写成
- 符号常量命名时参照Google 开源项目风格指南,以 “k” 开头,大小写混合
- 实际编程过程中的名字最好简单易懂,用具有对应含义的英文或者拼音来表示
- 定义的时候必须进行初始化,且在初始化之后不能再进行修改与重新赋值
- 如果试图对常量做修改,例如把它放在赋值符号的左边,就会被编译器发现并指出错误
总结一下符号常量的初始化伪代码:
const 数据类型 常量名称 = 初始值;
或者数据类型 const 常量名称 = 初始值;
#include<iostream>
using namespace std;
int main() {
// 字面量
cout << 1 << " 是一个整型字面量" << endl;
cout << 0.5 << " 是一个浮点型字面量" << endl;
cout << 'a' << " 是一个字符型字面量" << endl;
cout << "这句话就是一个字符串型字面量\n" << endl;
// 定义符号常量表示可乐单价
const int kCokePrice = 5;
// 定义符号常量表示爆米花的单价
int const kPopcornPrice = 10;
// 将可乐与爆米花的单价分别打印在屏幕上,并且加上提示信息
cout << "CokePrice is: " << kCokePrice << endl;
cout << "PopcornPrice is: " << kPopcornPrice << endl;
return 0;
}
基础知识
- 字符常量只能包括一个字符