【发布时间】:2013-06-18 04:24:26
【问题描述】:
我可以知道为什么这个任务是可能的吗?
char const *c = "Hello";
c = "there!";
是不是指向了一个内容不能修改的位置。据我所知,它正在创建另一个对象并使 c 指向它。是不是真的。
对此的任何其他亮点将不胜感激。
【问题讨论】:
-
你不是在修改
*c的内容;您正在指向一个新的(且不可更改的)位置... -
c是一个指向不可修改字符的指针……没有理由不能指向不同的不可修改字符。 “它正在创建另一个对象”——不是真的;字符串文字已经在内存中(它在程序加载时加载),这只是将c设置为它的地址。