0
点赞
收藏
分享

微信扫一扫

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

爱我中华8898 2022-04-24 阅读 102
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++环境下,这样的类型不兼容只是一个警告,不会报错

如有错误,烦请指正

举报

相关推荐

c#传字符串数组给c++

c++字符串

C++分割字符串

字符串压缩(C++)

C++字符串拼接

C++的字符串

C++字符串详解

c++ 字符串插入

0 条评论