社区
新手乐园
帖子详情
vs2017中字符串赋值给char*的问题
a75326239
2018-02-19 06:27:20
新装了个vs2017.新建一个项目,发现
char* str = "1234asd56";
会报错
const char*类型的值不能用于初始化char*类型的实体
但是从vs2008转过来的工程同样语句不会报错
请问是什么原因
...全文
3733
8
打赏
收藏
vs2017中字符串赋值给char*的问题
新装了个vs2017.新建一个项目,发现 char* str = "1234asd56"; 会报错 const char*类型的值不能用于初始化char*类型的实体 但是从vs2008转过来的工程同样语句不会报错 请问是什么原因
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yijiuruchen
2020-07-02
打赏
举报
回复
const 的意思是不可变的;如果const char* 可以给char* 赋值 ,那是不是可以通过改变char* 来改变const char* 的值,是不是违背了const的定义。原来可以用是因为 原来是个bug现在改正了。你可以自己申请一块内存使用memcpy来进行赋值啊。
离水的鱼儿
2019-07-04
打赏
举报
回复
可以强制转换,char*就const char*
favomj
2019-07-02
打赏
举报
回复
1
今天碰上了 这么改好的。。 char* label; char lab[10] = "基准"; label = lab;
onbigion13
2018-04-17
打赏
举报
回复
今天也遇到这个问题,找了半天才找到这里。这个规定真的会带来很多麻烦,在vs2013都可以通过编译的。17就不行了。这给类里面的成员的初始化带来很大麻烦。有的地方的说法是用常指针作为构造函数形参,但是我的成员函数很多是面向字符数组的函数,要是把构造函数形参改成常指针,那我的类的定义全都得改。我觉得这个小空子,赚了不会产生什么大问题,不钻反而会造成麻烦。
a75326239
2018-02-25
打赏
举报
回复
确实是个历史问题但是一般编译器只是给出一个warning 如果const char* 不能赋值给char*好多东西做起来就很麻烦了
自信男孩
2018-02-22
打赏
举报
回复
const char *str = "1234asd56";
这样写才最好的,正确的。
paschen
2018-02-19
打赏
举报
回复
"1234asd56"是常量 ,正确的写法本身就是:const char* str = "1234asd56"; 之所以可以写成char*是历史遗留原因,但你修改这个字符串时,你程序可能就崩溃了,新版本VS对这个进行了更严格的控件
a75326239
2018-02-19
打赏
举报
回复
经过仔细比较两项目属性发现新建项目的C/C++——语言——符合模式默认为是 将其改为否则编译不再报错
MySQL 数据类型和运算符
============================= # 数据类型 整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间数据类型:五种 YEAR -1
字符串
类型:二种
CHAR
(M) VAR
CHAR
(M) -1 ...
C语言
字符串
赋值
给数组/
char
*
字符串
(c语言): 以“abcd”为例,解释如下: 1. 申请了空间(在常量区),存放了
字符串
2. 在
字符串
尾加上了'/0' 3. 返回地址 一定记清楚!! 1.
字符串
赋值
给
char
* int main(int argc, const
char
*argv[]) {
char
*p1 = "hello"; printf("p1[0] = %c\n", *p1); printf("%s\n", p1);
char
*p2 = NULL; ...
C/C++
中
字符串
常量为什么可以
赋值
给
char
*?
1、对于C来说,
字符串
常量是由字符构成的数组,比如“hello”类型为
char
[6],所以在C
中
可以直接
字符串
常量
赋值
给
char
*。既然C
中
字符串
不是常量,是不是可以改变
字符串
常量的值呢?答案是否定的,虽然可以编译通过(会有警告),但是运行时会出错。因为
字符串
常量位于只读存储区不允许写操作。实验如下: #include <stdio.h> #include <stdlib.h...
c++
中
如何将string
赋值
给
char
*
首先,我需要将一个
字符串
和一个整数相加,这得首先将整数转化为
字符串
,然后相加; 其次,要将这个相加后的string
赋值
给
char
*的变量,怎么做。 std::string stateVar= "x"+std::to_string(k); //k是一个传递过来的整数 int stateVar_long = sizeof(stateVar);
char
* setKx = new
char
[sta...
C++(vs2022)const
char
字符常量
赋值
给
char
*
const
char
*给
char
*字符数组直接
赋值
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章