欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

const与#define

程序员文章站 2024-03-23 11:27:58
...

const与#define

#include "stdafx.h"
#include <iostream>
using namespace std;

#define N 200 //宏,在预处理时发生了替换 不接受类型检查

//const 永远不会发生改变
//const 意义上相当于 #define


#if 0

1.C++中的const 是真const 是为了取代#define 定义的宏常量

2.const 修饰的变量称为常变量,常(不可变 用任何方法均不可变)
变量(类型的概念 可以接受类型的检查)

3.const 修饰指针

4.const 修饰引用
const == >const &
none const == > const &
const type & == > !type(常量、表达式等)

5.脱const化
const_cast<typeid>(待转化类型)
typeid 的类型必须为引用或指针,不可以直接应用与对象
//对const 类型的脱const后的指针和引用的 写操作c++未定义
//如i++ + i++  a[i++]=i++;


const int a = 5;
为了实现 int &ra = a;
第一种方式:const int &ra = a;
第二种方式:int &ra = const_cast<int&>(a);


#endif 



int _tmain(int argc, _TCHAR* argv[])
{

	const int a = 200; 
	//编译阶段发生了替换 也就是在以后过程中
	//凡是用到a的地方 就相当于把a直接换成了200
	
	int b = 10;
	int c;
	c = b + a;//c = b + 200;
	cout << c << endl;

	return 0;
}