每日n叹 2022-11-17 19:44 采纳率: 100%
浏览 10
已结题

形参是const char,实参可以用char吗

如题,一个函数的形参是const char,调用时实参可以用char吗,为什么可以或者为什么不可以呢

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-17 22:15
    关注
    • 你可以看下这个问题的回答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条)

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月17日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度