例如:
const char* f = "123";
据我所知,f
的值是地址。但为什么?它不应该产生错误吗?
最佳答案
指针的值不是字符串,而是字符串字面量中第一个字符的内存地址。
这是足够的信息,因为字符串文字是空终止的。
发生的事情是在内存中创建一个大小为(字符数)+1 的字符数组。数组中最后一个字符的值是 '\0'
(字面意思是所有位都为零),它表示字符串文字的结尾,因此顺序读取该数组的代码知道不会超过它索引。
关于c++ - 指针如何将字符串作为其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42101375/