首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vs2017中C2440错误:“初始化”:无法const char换为char*问题解决

同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习0到1系列文章。...一、Bug描述 C2440错误表示编译器无法隐式地将一个const char数组转换为一个char类型的指针。...二、定位报错原因 类型不匹配:尝试将一个常量字符数组赋值给一个非const的字符指针。 意图不明确:代码可能需要一个指向可修改字符的指针,但却错误地声明了一个常量字符数组。...代码示例: const char myArray[] = "Hello"; char* myPointer = const_cast(myArray); 方案二:声明非const字符数组...代码示例: const char myArray[] = "Hello"; auto myPointer = myArray; // 自动推断为const char* 类型 方案五:引入【】(亲测有效)

15310

错误记录】C++ 字符串常量参数报错 ( 无法将参数 1 const char ”转换为char *” | 字符串文本转换将丢失 const 限定符 )

*)”: 无法将参数 1 const char [6]”转换为char *” Test.cpp(12,6): message : 字符串文本转换将丢失 const 限定符(请参阅 /Zc:strictStrings...*)”: 无法将参数 1 const char [6]”转换为char *” 1>D:\002_Project\006_Visual_Studio\HelloWorld\HelloWorld\Test.cpp...(12,6): message : 字符串文本转换将丢失 const 限定符(请参阅 /Zc:strictStrings) 1>D:\002_Project\006_Visual_Studio\HelloWorld...========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 二、问题分析 该错误 只在 高版本的 Visual Studio 中出现 , 如 Visual...* 类型的字符串 , 那么就传入 char* 类型的实参 , 不要传入 const char* 类型的字符串 ; 将 “Hello” 字符串常量 , 强制转为 char* 类型 , 如下代码示例 : fun

72110
您找到你想要的搜索结果了吗?
是的
没有找到

【C++】类型转换 ③ ( 重新解释类型转换 reinterpret_cast | 指针类型数据转换 )

C 语言的隐式转换 p2 = p1; 此时会报错 : error C2440: “=”: 无法char *”转换为“int *” , 1>------ 已启动生成: 项目: HelloWorld...: “=”: 无法char *”转换为“int *” 1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Test.cpp(10,7): message...“=”: 无法char *”转换为“int *” // message : 与指向的类型无关; // 强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换 p2...“=”: 无法char *”转换为“int *” // message : 与指向的类型无关; // 强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换 /...* 类型指针 转为 int* 类型指针 , 该操作会报错 error C2440: “static_cast”: 无法char *”转换为“int *” ; 1>------ 已启动生成: 项目:

40910

【细品C++】引用

代码演示: void demo3() { const int a = 3; //int& ra = a;// a是具有常属性的变量 // error C2440: “初始化”: 无法const...int”转换为“int &” const int& ra = a; //int& rb = 10;// 10是常量 // error C2440: “初始化”: 无法“int”转换为“int...&” const int& rb = 10; double c = 3.1415; //int& rc = c;// 引用类型与实体类型不相同 // error C2440: “初始化”:...无法“double”转换为“int &” const int& rc = c; //本质上rc引用的是强制类型转换时产生的临时变量, //此临时变量是不能被修改的,具有常属性 } 使用场景 做参数...引用在初始化时引用一个实体后,就再也不能引用其他实体(事实上,语层面上就无法做到,没有能改变引用实体的语句),而指针可以在任何时候指向任何一个同类型实体。 没有NULL引用,但有NULL指针。

15010

【C++】类型转换 ④ ( 子类 和 父类 之间的类型转换 - 动态类型转换 dynamic_cast )

: error C2440: “static_cast”: 无法“Son *”转换为“Son2 *” ; Son son; Son2 son2; // 创建父类指针 , 直接让父类指针指向子类对象...: error C2440: “static_cast”: 无法“Son *”转换为“Son2 *” // message : 与指向的类型无关; // 强制转换要求 reinterpret_cast...: “static_cast”: 无法“Son *”转换为“Son2 *” 1>D:\002_Project\006_Visual_Studio\HelloWorld\HelloWorld\Test.cpp...: error C2440: “static_cast”: 无法“Son *”转换为“Son2 *” // message : 与指向的类型无关; // 强制转换要求 reinterpret_cast...: error C2440: “static_cast”: 无法“Son *”转换为“Son2 *” // message : 与指向的类型无关; // 强制转换要求 reinterpret_cast

37410

CString 和 char* 类型转化

1、CString 转化成 char*(1) —— 强制类型转换为 LPCTSTR   这是一种略微硬性的转换,我们首先要了解 CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针...有效字符数的大小可以是0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。   ...因为 DoSomethingCool 函数已经说明了需要一个 LPCTSTR 类型的参数,因此 LPCTSTR 被应用于该参数,在 MFC 中就是返回的串地址。 如果你要格式化字符串怎么办呢?...GetBuffer 返回的值是正确的,但是当我把它赋值给 char* 时,它就变成垃圾了。...Name"), 0, REG_SZ,                      (CONST BYTE *) (LPCTSTR)Name,                      (Name.GetLength

6.2K20

CC++数据类型的转换之终极无惑

(4)函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋值给调用函数。 编程原则:请尽量不要使用隐式类型转换,即使是隐式的数据类型转换是安全的,因为隐式类型数据转换降低了程序的可读性。...:error C2440:“=”:无法“short[4]”转换为“wchar_t”。...a); cout<<*p; getchar(); } 这个程序无法通过编译,就是说,直接将A*类型转换为char*是不允许的,这时可以通过void*类型作为中介实现转换。...如父类A1指针实际上指向的是子类,则可以将A1换为子类的另一个父类A2指针。...(2)类型转换函数通常是提供给类的客户使用的,所以应将访问权限设置为public,否则无法被显示的调用,隐式的类型转换也无法完成。 (3)类型转换函数既没有参数,也不显示的给出返回类型。

71130

【C++】C++ 引用详解 ⑨ ( 常量引用初始化 | C C++ 常量分配内存的四种情况 )

int& b = a; 2、使用 " 常量 / 字面量 " 初始化 " 常量引用 " 在 博客 【C++】C 语言 和 C++ 语言中 const 关键字分析 ( const 关键字左数右指原则 |...已存在 的内存空间 , " 引用 " 就没有意义了 ; " 引用 " 就是为一段 " 内存 " 起一个别名 , 如果没有 内存 , 也就不存在引用 ; 因此 , 下面的代码 , 会报错 , error C2440...: “初始化”: 无法“int”转换为“int &” ; // 普通引用 引用字面量 , 直接报错 // error C2440: “初始化”: 无法“int”转换为“int &” int&..., 有独立的存储空间 ; C++ 语言中的 const 常量 存储在 符号表中 , 默认情况下 const 常量不会分配内存空间 , 但是在下面的三种情况下会分配内存空间 ; 如果 const 常量是...: error C2440: “初始化”: 无法“int”转换为“int &” // " 引用 " 就是为一段 " 内存 " 起一个别名 , 如果没有 内存 , 也就不存在引用 ; //int&

24530
领券