c语言中,为什么不能对字符指针变量指向的字符串再赋值?
发布网友
发布时间:2023-07-20 19:12
我来回答
共1个回答
热心网友
时间:2023-12-31 20:34
这不是绝对的:当指针指向的字符串是常字符串时当然不能再赋值,因为目标是“常量”,而当指针指向的字符串不是常字符串时就可以再赋值,比如用动态申请内存方法创建的字符串。具体说就是用char
*p="abcqer12345";这种方法定义字符串是不能通过指针改变内容的,原因是这个定义确定了abcqer12345是字符串常量——因为char
*p="abcqer12345";被编译器解释为“创建一个字符串常量abcqer12345,并把它的首地址(就是a的地址)赋给char
*型指针p”——既然是“常量”,自然就不能更改。