美文网首页程序员
函数声明后面的const用法 const char *和char

函数声明后面的const用法 const char *和char

作者: LongHuang | 来源:发表于2018-05-06 19:52 被阅读0次

前言

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

1 const 和指针变量

C和C++中结果相同

2 const 函数返回值

c和C++中表现相同

const在函数中.png

3 const在形参中

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


const形参.png

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

const在函数后.png

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

const类只能调用const函数.png

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表示指针

参考:

函数声明后面const用法

相关文章

网友评论

    本文标题:函数声明后面的const用法 const char *和char

    本文链接:https://www.haomeiwen.com/subject/ncvkzxtx.html