前言
本文总结了大部分的const的使用场景。相信好多人也会被换个顺序换个结论给弄蒙了。建议根据给出的总结在去记忆会对大家有所帮助
1 const 和指针变量

2 const 函数返回值
c和C++中表现相同

3 const在形参中
const做形参和指针变量规则相同

4 const在函数后面(只有在C++的类中)

4 const类只能调用const函数(只有在C++的类中)

5 理解
char * const 作为形参只要是告诉使用者,该函数不会改变指针的指向,比如我们有一个add(Node * const head),告诉我们函数并不会改变我们传入的head的地址。
比如 strcpy( char* _Dest, char const* _Source);告诉我们strcpy函数不会改变_Source中的内容。通过形参的形式可以让我们更加方便理解函数。
6 总结
在1和3两个部分有相同的规则 这里先说3作为形参的意义。
在char const 星 有六种组合分别是
1 char const 星
2 char 星 const
3 const char 星
4 const 星 char
5 星 const char
6 星 char const
我们知道char 一定在 星 的前面那么我们就只有三个是合法的定义了。
1 char const *
2 char * const
3 const char *
其中 char const * 和 const char * 是相同的。也就是说const 和char他们前后的位置关系不影响含义。
影响含义是const 在* 前面还是* 在const前面。
char * const c1相当于 (char * ) const c1,表示指针是常量,被指向的内容是可以改变的。
规则
1.类型(char)一定在 *(指针)前面表示是什么类型的指针
2.const 和 * 位置决定是指针为const还是内容为const
3.char * const 相当于(char *) const表示指针

参考:
网友评论