C语言中的const与C++中的const

来源:互联网 发布:大学生饮酒死亡 知乎 编辑:程序博客网 时间:2024/05/17 08:42

C语言中的const

#if 0C语言中的constconst 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;}