高质量程序设计指南<C/C++语言>笔记记录

1、字面常量

下面是一些字面常量:

float x=-100.5f;

#define OPEN_SUCCESS 0X000000001

char c='a';

char *ptr="I Love Andy";

int *pInt=NULL;

"="号后面的是字面常量,字面常量保存在程序的符号表里而不是在一般的数据区。符号表是只读的,它是一种访问保护机制,不可以取一个字面常量的地址

常量合并:相同的常量公用一个表符号。

2、符号常量

符号常量有两种:用#define顶一顶的宏常量和用const定义的常量

宏常量在编译之前就已经被替换为所代表的字面常量了,因此宏本质上是字面常量。

c++ 中基本数据类型的常量,编译器不会为其分配存储空间。

const常量的一些特性:

可以取一个cost符号常量的地址,对于基本类型的常量,编译器会重新在内存中创建它的一个拷贝,通过地址访问到的就是这个拷贝而非原始的符号常量;

而对于构造类型的数据常量,编译器会分配存储地址。

3、契约性常量

void ReadValue(const int &num)
{
	cout<<num;
}
	
	int main()
	{
	int n=0;
	ReadValue(n);//契约性const,n被看做是const
	}

4、枚举常量

枚举类型有局限性,一般用于整数常量

5、字符串常量的定义

如果一个常量字符串必须在.h文件中顶一顶的话,那么应该在.h中声明常量指针,在.cpp中定义并初始化。

对于多个文件中要用到的字符串常量尽量用extern声明:extern const char *name;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值