2 okazaki tomoya OKAZAKI_TOMOYA 于 2018.02.10 11:51 提问

无法使用char *p定义字符串指针变量 5C

初学C,用的是VS2017
char *p="xxx";
这么简单的定义语句提示 const char *" 类型的值不能用于初始化 "char *" 类型的实体
然后在char前面加上const就一切正常了,但字符串指针难道不是char *p这样定义的么?怎么样才能定义一个字符串指针变量?难道是因为VS2017的问题么?

21个回答

liuxing324
liuxing324   2018.02.10 11:54

提示的很准确的,你把常量赋给了非常量!

cbj921
cbj921   2018.02.10 15:07

定义char *p的时候给赋值应该是 p=某个地址,这时候指针变量p接收的是地址而不是值,要接受值应该 多添一行 *p=‘a’,而且是字符变量,不能给字符串吧。

OKAZAKI_TOMOYA
OKAZAKI_TOMOYA 关键就是我看书上就是这么写的,C语言从入门到精通第三版,清华出版社那个,感觉那本书好多问题...
3 个月之前 回复
qq_39217220
qq_39217220   2018.02.10 12:31

赋值有问题,静态常量不可以

baidu_38648939
baidu_38648939   2018.02.10 15:39

建议初学者用GCC, 有好多IDE dev-cpp 等等, 问题在于动态指针不能指向常量

wwwwpp184
wwwwpp184   2018.02.10 17:04

"xxx"是常量,在编译时已经存储在进程的常量区域。VS2017应该采用C11标准,对C语法检查更严格.

ctan
ctan 回复YoRHa_2_B: 你所用教材的C标准与vs2017的C标准不同而已
3 个月之前 回复
OKAZAKI_TOMOYA
OKAZAKI_TOMOYA 是不是就是因为标准问题...?我看的书是第三版从入门到精通,清华大学出版社的,书上就是这种写法结果我一写就错了
3 个月之前 回复
f1ngw5
f1ngw5   2018.02.10 12:07

"xxx"字符串保存在常量存储区里面

qq_39774941
qq_39774941   2018.02.10 12:39

初始化时,c语言中的指针变量是行不通的

xf81500
xf81500   2018.02.10 13:34

"xxx"字符串是常量,在程序编译时就已经指定存储地址了的。

zhangjun460
zhangjun460   2018.02.10 14:35

字符串保存在常量存储区里面

qq_39087999
qq_39087999   2018.02.10 15:37

静态常量指针不能被再次赋值

共21条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!