欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力
对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
专栏:
文章概述:对常数和常量的介绍
关键词:常数和常量
本文目录:
常数与常量
先看看最粗略的内存结构。
常数
也叫立即数,或者“字面量”,就是硬编码到程序中的那些“死”数据。
- 字符常数 单引号:'A', 'x' 有些字符无法表示,可以直接整数,或:转义字符
char a = 'A';
char b = 9;
char c = 66;
'\t' 与 9 是同等效果的 '\n' 是什么?它的 ASCII 码是多少? 可以实验确定
char a = '\n';
int x = a;
cout << x << endl;
- 整型常数 默认是 int,需要长整数需要加 LL
考考你,一年有多少秒? int a = 365LL * 24 * 60 * 60 * 1000;
十六进制表示法: 0xff, 0xBA3C
二进制与十六进制有天然对应关系:
cout << hex << x<< endl;
- 浮点型常数 可以使用 f 或 d 尾标表示类型 可以使用科学计数法表示更大的数字
0.5e12, 3.18e-20
常量
用 const 修饰的变量,它占用数据区内存,但编译器保证你不能修改它的值。
常量必须在定义时初始化
编译器的保证只是形式上的,你可以绕开编译器,强行改变其值! 常量的用处:
- 多个地方用到同一个常量,内存只有一份拷贝。
- 程序中不希望修改的量,避免“笔误”
- 程序中不希望出现魔法数字,这样不利于将来的变更
枚举类型
把一组常数符号化,比如:星期,职称等有限种类的情形
enum week{Mon, Tue, Wed, Thu, Fri, Sat, Sun} a; 实际上相当于:
enum week{Mon, Tue, Wed, Thu, Fri, Sat, Sun};
enum week a;
这实际上是同时定义了三样东西: 类型: enum week 类型中的常数符号: Wed, Sat 等 该类型的变量: a
enum 的典型错误用法:
enum week{Mon, Tue, Wed, Thu, Fri, Sat, Sun};
int a = Thu;
//a = 100;
cout << a << endl;
可以通多 typedef 来定义enum的别名,避免定义多个变量时的尴尬。
typedef enum {Mon, Tue, Wed, Thu, Fri, Sat, Sun} WEEK;