C语言问题,给一个字符串赋值等号后面的内容用双引号、单引号的区别是什么。

双引号里的内容是放到那个字符串的地址里,而单引号是直接放到那个字符串里,是这样吗?就像char*p;p=“”;*p=‘’;这样子吗?... 双引号里的内容是放到那个字符串的地址里,而单引号是直接放到那个字符串里,是这样吗?就像char *p;p=“ ”;*p=‘ ’;这样子吗? 展开
 我来答
luoguolong2660
推荐于2017-10-05 · TA获得超过157个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:229万
展开全部
双引号中的内容是一个以\0结尾的字符串,如“china”其实在内存中是'c' 'h' 'i' 'n' 'a' '\0'

单引号代表一个字符,不能在单引号中出现多个字符'abc'是错误的
p="hello"中“hello”是一个常量,p指向这个常量,也就是p保存了常量的首地址
*p = 'h'是向p指向的空间赋值(p指向一个char空间,空间大小为一个字节)
追问
那例如*p="hellow"和p='h'是不是错的。
追答
都是错的,因为
对于*p = "hellow" 来说,p是一个char类型的指针,*p就是一个char,用“hellow”这个字符串给一个字符赋值显然是错的,“hellow”其实可以当作一个char* ,只是这个char*不可修改而已。
对于p = ‘h’ 来说,p是一个指针,它应该接收一个地址值,而‘h’是一个字符,其实就是一个字节的整数,直接赋值是不对的。
C编译器编译时会发现这种错误,因为赋值操作两边的类型不一样
jsyjzz
2013-05-21 · TA获得超过478个赞
知道答主
回答量:54
采纳率:0%
帮助的人:9万
展开全部
char *p定义一个字符指针, p="" 给这个字符串指针赋值,*p只是取该地址里面的内容,“”这个是字符常量,所以不能对该字符串进行操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦之阳4
2013-05-21 · 超过11用户采纳过TA的回答
知道答主
回答量:266
采纳率:0%
帮助的人:58.9万
展开全部
p=" "表示指针指向字符串的地址,,而p=‘ ’表指针指向字符的地址,,

" " 表示是字符串 ' '表示字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式