C++,错误:"const char *"类型的实参与"char *类型的形参不兼容" 15

举个例子说明我的代码stringdata="123";LPCTSTRmacaddressvalue=chartowchar(data.data());这个代码会报上述的错... 举个例子说明我的代码
string data="123";
LPCTSTR macaddressvalue =chartowchar(data.data());
这个代码会报上述的错误,请问如何解决呢?
展开
 我来答
娱乐小八卦啊a
高粉答主

2020-01-22 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117815

向TA提问 私信TA
展开全部

这是说明类型不兼容,强制转类型。在声明变量 char* 时改成 const char *即可。

当用户想在.h声明中定义成员变量,有时会报类型重定义错误,如果不是工程中真的重复定义了多个同名类,那么多半是没有给该类的头文件加条件指示符#ifndef。

条件指示符#ifndef 最主要的目的就是防止头文件的重复包含和编译,这样才能保证头文件被多个其他文件引用时,内部的数据不会被多次定义而造成错误。

扩展资料

C++ 中形参与实参区别:

1、形参出现在函数定义的地方,多个形参之间以逗号分隔,形参规定了一个函数所接受数据的类型和数量。

实参出现在函数调用的地方,实参的数量与类型与形参一样,实参用于初始化形参。

2、当形参是引用类型时,对应的实参被引用传递,引用形参是对应的实参的别名。

当实参的值被拷贝给形参时,形参和实参是两个相互独立的对象,对应的实参被值传递。

3、C++中,建议使用引用类型的形参替代指针,因为使用引用,形式上更简单,无须额外声明指针变量,也避免了拷贝指针的值。如果函数无须改变引用形参的值,最好将其声明为const引用。

YaNaKaSa
推荐于2017-11-21 · TA获得超过114个赞
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:82.9万
展开全部
chartowchar不是库函数 , 是你自己定义的函数,定义的时候原型应该是:
wchar_t chartowchar( char* );
string::data( )返回的是const char* 从const char*到char*时不能直接转换的,
解决方式:
chartowchar( const_cast<char*>( data.data( ) );
但最好不要这样使用,建议将chartowchar的参数定义为const char*.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扈怀炜4h
2015-11-10 · TA获得超过6037个赞
知道大有可为答主
回答量:6907
采纳率:67%
帮助的人:1294万
展开全部
把 string data=“123” 修改成 char data[]="123"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式