函数及其参数类型
函数调用情况
错误显示:没有与之匹配的函数
这个错误是由于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++环境下,这样的类型不兼容只是一个警告,不会报错
如有错误,烦请指正