参考:
博文01:https://www.xuebuyuan.com/3267655.html
一、一些理论知识
1、看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。
const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。
2、(1)传入传出参数见另外的博客
(2)常量指针也见另外的博客
二、应用场景和具体作用
1.用const 修饰函数的参数
如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const 修饰,否则该参数将失去输出功能。const 只能修饰输入参数:
如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针,起到保护作用。
例如
(1)StringCopy 函数:
void StringCopy(char *strDestination, const char *strSource);
其中strSource 是输入参数,strDestination 是输出参数。给strSource 加上const修饰后,如果函数体内的语句试图改动strSource 的内容,编译器将指出错误。
注意:const char *strSource或 char const *strSource ,此时指针strSource变为了常量指针,常量指针:指向常量的指针。常量指针的特性就是限定不能通过指针来改变所指向的内存地址空间中所存储的变量的值。
(2)如果输入参数采用“值传递”,由于函数将自动产生临时变量用于复制该参数,该输入参数