C语言中的const
#if 0
C语言中的const
const int a=200;
如果设置为全局变量也不能更改,
因为此时把a放入只读数据区中了
int main(void)
{
const int a=200;
//a=100; 在c语言中不能直接改变const类型的变量
int*p=&a;
*p=500;//但可以用过指针间接改变变量的值
printf("a=%d *p=%d\n",a,*p);
return 0;
}
#endif
C++中的const
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//const int a = 200; //不能通过指针进行更改
//int* p=&a; 不能将const int*类型赋给int*
int a = 200;
const int &ra = a; //const修饰的是ra
//ra = 300; 不能更改const的值
a = 500;
cout << ra << endl; //可以改写a的值
const int b = 300;
//int &rb = b; 语法错误 这种情况相当于可以通
//过rb来改变b的内容 b是const的,所以改变不了
const int &rb = b;
//加const才可以通过 但也是只能读不能改写
const int &rx = 2;//将常量赋给相关类型
//int &rx = 2; 编译出错
double c = 12.34;
//int &rc = c;
const int &rc = c;//不同类型可以被引用
const double &re = c + 2; //表达式也可以被引用
//double &re = c + 2;
return 0;
}