[c++]字符串传参错误

函数及其参数类型

函数调用情况

错误显示:没有与之匹配的函数

这个错误是由于c++中的字符串常量类型是const char[] ,这个类型传参时用char数组接收会报错

编译器显示:
错误    C2664     无法将参数 2 从“const char [2]”转换为“char 【】”    

解决方法一:

将把代码中char类型数组全部用string类型替换,函数的参数接收类型也改成string类型

解决方法二:

在传参时将字符串常量强制类型转换成char*

函数和参数类型

函数调用方法:

 为什么会有这样的错误和与c语言的区别

遇到这个问题的小伙伴都很困惑,明明在c语言中我们传参是可以这样传的,为什么在c++中不行呢?

经过我的多次实验我发现在c++中,vs对字符串常量的类型定义是const char【】,如下图

 但是在c语言中字符串常量的类型是char【】,少了一个const

 

这就导致了在vs环境下,char类型的不兼容,导致报错

但是在devc++环境下,这样的类型不兼容只是一个警告,不会报错

如有错误,烦请指正

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值