char* text = "Hello world";
报错为:
E0144 “const char *” 类型的值不能用于初始化 “char *” 类型的实体
有人说是因为VS版本的原因,之前的VS版本可写成如图所示,而在VS2017中,此写法会报错,新版本(2019)对这个进行了更严格的控制。
解决办法:
可以先用字符数组存储,再将数组名赋值给指针。如下图所示:
亲测有效!
许久不用Visual Studio了,今天安装回来,遇到了一个环境问题:代码为:char* text = "Hello world";报错为:E0144 “const char *” 类型的值不能用于初始化 “char *” 类型的实体 有人说是因为VS版本的原因,之前的VS版本可写成如图所示,而在VS2017中,此写法会报错,新版本(2019)对这个进行了更严格的控制。解决办法:...
String(const char * s);//利用字符串来初始化对象
String(); //默认构造函数
String(const String & s);//复制构造函数,利用String类型来初始化对象
~String(); //析构函数
int length(); //返回String类型中字符串的长度
String & operator=(const String & s);//重载=运算符。
String & operator=(const char *);
char & operator[](in
几个月之前,接触Android recovery源代码的时候,看ScreenRecoveryUI类的时候,那时候C++基础还不是特别好,一直不明白以下的
初始化方式:
下面这个是Recovery的一个构造函数,代码位于:screen_ui.cpp,它的类的实现在screen_ui.h。
如下这个ScreenRecoveryUI类,这个类是继承于RecoveryUI类的:
这个文件在screen_ui.h
class ScreenRecoveryUI : public RecoveryUI {
public:
ScreenRecoveryUI();
void Init();
E0144:const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
在程序清单7.9中这条语句引发了错误:
char* wail = "ululate";
书中写到:
假设要将字符串作为参数传递给函数,则表示字符串的方式有3种:
char数组
用引号括起的字符串常量(也称字符串字面值)
被设置为字符串的地址的char指针。
但上述选择的类型都是char指针(准确地说是char*),因此可以将其作为字符串处理函数的参数:
程序清单7.9的目的是要向我们演示声明将C-风格
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++代码时,发生以下两个错误之一时,均可按以下两个方法解决:
网上查了一下,一部分人说是vs版本兼容性问题,新版本vs2017,2019都会遇到这个问题,新版本vs对此有更严格的要求。
目前总结到了3种解决方法,亲测有效,可以根据你的使用习惯选择一种方法。
方法1,不改代码,修改项目属性。项目>...
VS2017后期版本、VS2019版,对于直接利用char * 类型声明变量时会产生““const char*”类型的值不能用于初始化“char”类型的实体”的错误,解决办法有3种。
在char*前加const关键字
const char *str1 = "ABC";
对变量进行强转
char *str1 = (char *)"ABC";
对变量先进行字符数组...
最近在看黑马c++教程,他们直接用test02()函数是可以直接运行的,而我用的是VS2019,会报错, 报错内容为:void 类型不能用来初始化char* 类型的实体。
查看了一些方法比如定义为const char*,或者在属性里面设置符合模式为否都不好用。
再看一遍报错,void 类型不能用来初始化char* 类型的实体,那么只需要转换类型就可以了,所有在分配内存空间时直接强制转换成字符型指针空间。
具体为什么在旧版本vs不报错而在新版本报错我也没理解,欢迎c++大佬来探讨。
#define _CR