我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 指针 >

c语言中为什么不能对字符指针变量指向的字符串再赋值?

归档日期:08-07       文本归类:指针      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  因为C语言中,凡是以括住的形式直接出现,而且你又没有为其分配内存空间的字符串都是常量字符串,是不能修改其值的。

  这不是绝对的:当指针指向的字符串是常字符串时当然不能再赋值,因为目标是“常量”,而当指针指向的字符串不是常字符串时就可以再赋值,比如用动态申请内存方法创建的字符串。具体说就是用char *p=abcqer12345;这种方法定义字符串是不能通过指针改变内容的,原因是这个定义确定了abcqer12345是字符串常量——因为char *p=abcqer12345;被编译器解释为“创建一个字符串常量abcqer12345,并把它的首地址(就是a的地址)赋给char *型指针p”——既然是“常量”,自然就不能更改。

  展开全部C语言中,凡是以括住的形式直接出现,而且你又没有为其分配内存空间的字符串都是常量字符串,是不能修改其值的。

本文链接:http://masterblue.net/zhizhen/506.html