标签:style blog color 使用 strong sp 数据 div on
在c++里比在c中功能更强!
#define定义常量,只是简单的文本替换,不做类型检测,容易出错。
const int a = 10;
1 //定义const常量默认是int类型,const定义的符号常量有自己的数据类型 2 //编译更加严格检测类型错误!比#define安全。符号常量有地址,可以指针指向,只是不能通过指针修改。 3 //const定义最后有分号,作为语句来处理。而#define不写分号 4 //可以在函数外部,在函数内部也可。只不过作用域不一样。 5 //c++也支持#define定义符号常量,建议使用更安全的const方式 6 int x = 5; 7 #define T1 x + x 8 #define T2 T1 - T1 9 cout << "T1 = " << T1 << " T2 = " << T2 << endl;
解释:#define只是简单的文本复制!T1=X+X=10 T2=x+x – x+x=x+x=10
改为const定义符号常量:则结果为10和0
const和指针结合
指向常量的指针(注意理解指向常量的含义)
1 int x = 5; 2 const int *p;//指针p本身是变量,*p(指向的内容)也不一定就必须指向的是常量! 3 //注意这里!只不过是不能修改*p,即不能通过指针p修改p指向的内容。 4 p = &x;//p本身的值可以修改 5 p = NULL; 6 7 //*p = 10;// error C3892: “p”: 不能给常量赋值 8 x = 10;//指针p指向的内容,不是常量,可以修改。只是不能通过指针p去修改而已。
常量指针
1 int x = 5; 2 //指针p指向的内容是变量 3 int * const p = &x;//指针p本身是常量,不能被修改,必须在定义的时候初始化! 4 *p = 10;//ok 5 //p = NULL;// error C3892: “p”: 不能给常量赋值
指向常量的常指针
1 int x =5; 2 //指针p本身是常量,p指向的内容也是常量 3 const int * const p = &x;//必须第一次定义就马上初始化 4 //p = NULL;//error C3892: “p”: 不能给常量赋值 5 //*p = 10;//error C3892: “p”: 不能给常量赋值
注意:在函数指针参量里使用const保护,防止修改实参,增强了安全性,增强了可读性。
当然还有常引用的使用。
标签:style blog color 使用 strong sp 数据 div on
原文地址:http://www.cnblogs.com/kubixuesheng/p/4034863.html