const 总 结

来源:互联网 发布:中国软件评测 编辑:程序博客网 时间:2024/04/30 09:36
CONST 总 结 
const的作用:

(1) 可以作常量,例如:const int a = 10;
(2) 可以保护被修饰东西,防止程序员意外修改,增强程序的健壮性。例如:void StringCopy(char *strSource, char *strDestination);
                                                                                                                                     const   int  *Fun(int a , int b);

常量是一种标示符,它的值在运行期间恒定不变。c语言中用 #define宏 来定义常量,c++语言中除了#define外还可以用 const 来定义常量。它的用处:增强程序可读性,防止程序员所用数字或字符串干什么用地;方便修该:在程序中如果要修改某数字或字符串,则会在很多地方改动,既麻烦又容易出错。

const 与 #define 的比较:
在 c++中用const 来定义常量,要比用 #define宏 来定义更好。
(1) const 常量有数据类型,而 #define没有数据类型 。前者在编译器中可以对数据类型进行检查,而后者只能用字符替换在运行程序中可能出现错误。
(2) 有些集成化的调试工具可以对 const常量进行调试,但是用 #define就不可以了。
(3) 在类中有时候我们需要定义某些常量,而 #define定义的宏常量是全局的,不能达到我们的所需要的目的。

在这里顺便说下#define 与 typedef区别:

在C/C++语言中,typedef常用来定义一个标识符及关键字(数据类型)的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。

常量定义规则:

(1) 需要对外公开常量放在头文件中,不需要对外公开的应放在定义文件头部。为了方便管理,可以把不同模块的常量集中存放在一个公共的头文件里。

(2) 如果某一个常量与其它常量密切相关,应在定义中包含这种关系,而不应该给出一些孤立的值。例如:

const int a = 50; 

const int b = a * 2;

const常量应用:

1.对指针使用const:

int x = 5;

int y = 10;

(1) 常量指针

const int *p = &x;


int const *p = &x;

//两者是相同的,p是指向int型const对象的指针

如果改变指针内容报错。例如:*p = y;//编译器报错

p = &y;//改变指针,没有问题

(2) 指针常量

int * const p = &x;

如果改变指针内容不报错。例如:*p = y;//正确

p = &y;//编译器报错

(3) 用const的指针和指向的内容都为常量

const int * const p = &x; //内容和指针都不能改变。

总结:为了方便记忆我们可以从字面意思理解,常量指针(const在前,指针在后),它指针的内容不可改变,反之指针可以改变。

指针常量(const 在后,指针在前),指针可以改变,反之内容不可以改变。


后面主要归纳const在函数和类中的应用。