使用Visio Studio写C++的项目时,定义如下形式的字符串char *text = “XXX”,总是会出现
E0144 “const char *” 类型的值不能用于初始化 “char *” 类型的实体
这样的错误。
比如下面的代码段:
这样的错误解决起来完全就没有头绪呀。
然后……之后……搜索……(中间过程)
我就发现了几种解决方法,现在整理一下,省的以后忘了。
方法1:
把char* 改成const char*
这个问题其实在声明变量 char* 时改成 const char *声明就在主函数调用时就不会在报错了。
但是又出现了这样的错误。
所以我就发现了方法2。
方法2:在项目上右键,在弹出菜单上选择“属性”,选择“C/C++”,然后在“语言”中,把“符合模式”改为“否”就好了。
关于这个方法2,在Visio Studio2015之前是没有这个选项的,默认就是否。
所以改了,就好了……
一使用Visio Studio写C++的项目时,定义如下形式的字符串char *text = “XXX”,总是会出现E0144 “const char *” 类型的值不能用于初始化 “char *” 类型的实体这样的错误。比如下面的代码段:这样的错误解决起来完全就没有头绪呀。然后……之后……搜索……(中间过程)我就发现了几种解决方法,现在整理一下,省的以后忘了。方法1:把char*...
VS2017后期版本、VS2019版,对于直接利用
char
*
类型
声明变量时会产生““const
char
*”
类型
的
值
不能
用于
初始化
“
char
”
类型
的
实体
”的
错误
,
解决
办法有3种。
在
char
*前加const关键字
const
char
*str1 = "ABC";
对变量进行强转
char
*str1 = (
char
*)"ABC";
对变量先进行字符数组...
在声明变量
char
* 时改成 const
char
*即可
原文链接:const
char
*
类型
的
值
不能
用于
初始化
char
*
类型
的
实体
_触动人生的博客-CSDN博客_不能
用于
初始化
char
类型
的
实体
char
* image_window = "Source Image";
char
* result_window = "Result window";
查了查资料,可能的原因是在VS2017版本
中
使用这种
char
*的表达方式会造成程序崩溃,所以VS2017对其进行了控件管理。
解决
方案:
1、先将字符使用字符数组进行存储,再使用指针
char
image[] = "Source Image";
char
result1[]
C++
错误
提示: 无法将参数 1 从“const
char
[7]”转换为“
char
*” 或“const
char
*”
类型
的
值
不能
用于
初始化
“
char
*”
类型
的
实体
用VS2017或VS2019写C++代码时,发生以下两个
错误
之一时,均可按以下两个
方法
解决
:
char
str = "hello world"; //
错误
代码 双引号
char
str = (
char
)"hello world";//正确代码 使用强制
类型
转换
先用字符数组进行存储,然后再使用指针:
char
str[] = "hello world";
在visual studio
中
,在项目上右键,在弹出菜单上选择“属性”,选择“C/C++”,然后在“语言”
中
,把“符合模式”
报错信息提示了一个
类型
不匹配的问题。在C++
中
,const
char
* const* 和
char
** 是不同的
类型
,不能直接进行赋
值
或
初始化
操作。
const
char
* const* 表示一个指向常量字符指针的常量指针,也可以理解为一个指向指针的指针,其
中
指针指向的字符是常量,指针本身也是常量。
而
char
** 表示一个指向字符指针的指针,其
中
指针指向的字符可以修改,指针本身也可以修改。
由于
类型
不匹配,所以不能将 const
char
* const*
类型
的
值
直接
用于
初始化
char
**
类型
的变量。
如果你需要将 const
char
* const*
类型
的
值
赋给
char
**
类型
的变量,可以使用 const_cast 进行
类型
转换。但是需要注意,这样的
类型
转换可能会导致潜在的问题,因为它涉及到对常量数据的修改。