VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 344|回复: 6

[求助] 我的c++编译器为什么不允许将带引号字符串赋给char指针?

[复制链接]
36_avatar_middle
在线会员 yq1557 发表于 2018-3-26 18:44:09 | 显示全部楼层 |阅读模式
3驿站币
带双引号的字符串常量其本质是地址,
为什么char *wail = "ululate";这句命令会提示错误?
具体代码请看下图:
捕获.PNG

最佳答案

查看完整内容

因为书中用的VS版本可能比较老,针对这种不安全的行为没有警告,本身字符串常量是常量,所以不能被修改,用个 char *类型的指针指过去了之后,在以后的某个时间可能忘记里面的内容类型所以很可能被修改了,所以VS为了避免这种问题的发生,于是就报错了,这是一种安全的提现,值得推荐。




上一篇:问一个闲问题
下一篇:C++ DLL 中 返回值是结构体指针函数的使用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-3-26 18:44:10 | 显示全部楼层
yq1557 发表于 2018-3-26 19:58
加上const我试过,是可以的,
但是,字符串常量就是一个地址呀,为什么还要加const?
网上也说可以将字 ...

因为书中用的VS版本可能比较老,针对这种不安全的行为没有警告,本身字符串常量是常量,所以不能被修改,用个 char *类型的指针指过去了之后,在以后的某个时间可能忘记里面的内容类型所以很可能被修改了,所以VS为了避免这种问题的发生,于是就报错了,这是一种安全的提现,值得推荐。

点评

谢谢您!  发表于 2018-3-26 22:03

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

51_avatar_middle
online_admins Syc 发表于 2018-3-26 19:31:02 | 显示全部楼层
因为 "ululate" 是个字符串常量
改成这样试试:const char *vail = "ululate";

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

36_avatar_middle
ico_lz  楼主| yq1557 发表于 2018-3-26 19:58:51 | 显示全部楼层
Syc 发表于 2018-3-26 19:31
因为 "ululate" 是个字符串常量
改成这样试试:const char *vail = "ululate";

加上const我试过,是可以的,
但是,字符串常量就是一个地址呀,为什么还要加const?
网上也说可以将字符串常量直接赋给char指针,
我的为什么不能,还要加const?
另外,这是书中的源码呀!我的c++编译器为什么不允许将带引号字符串赋给char指针?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

55_avatar_middle
在线会员 pua0156k 发表于 2018-3-27 08:26:39 | 显示全部楼层
那是因為你的專案有開啟 /Zc:strictStrings 選項
在 你的專案 右鍵 ->屬性->C/C++-> 命令列 可以看到
他會強制規範你的文本初始化的字符串指針 必須使用const
而const 就是唯讀
詳情請見
https://msdn.microsoft.com/zh-cn/library/dn449508.aspx

点评

谢谢!  发表于 2018-3-27 14:27

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-19 10:00

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表