如题,一个函数的形参是const char,调用时实参可以用char吗,为什么可以或者为什么不可以呢
2条回答 默认 最新
关注- 你可以看下这个问题的回答https://ask.csdn.net/questions/322863
- 你也可以参考下这篇文章:解决不能将 “const char *“ 类型的值分配到 “char“ 类型的实体问题
- 除此之外, 这篇博客: 关于char const **p、char * const *p、char ** const p的区别中的 理解思路 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
理解方法:将const当作函数,后面跟什么,什么就不变。
首先区别const char *p, char const *p,char * const p三者的区别:
(1)const char *p
(2)char const *p
(3)char * const p(1)和(2)其实是一样的,p是一个指向const char的指针,都是*p不能变,即值不能修改。(3)中表示p是一个指向char的const指针,即地址不能变,p 的指向不能修改。
所以,沿用此方法,char const **p、char * const *p、char ** const p就相对好区分了。
char const **p:const修饰**p,所以p二级指针的值不能改,即**p不能进行赋值。
char * const *p:const修饰*p,所以*p不能修改。
char **const p:const修饰p,所以指针p不能进行重新的指向,所以在初始化时就要进行重新定向。以上是本人的一点理解,有不足之处希望各位指出。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用