从本主题的先前问题中,我了解到指针指向字符串的第一个字符,并期望以下字符成为字符串的一部分,直到出现空字符。我的问题是如何做到这一点的声明,例如工作:
const char* name = "abc";
据我了解,const char* 的值不是短语“abc”,它是一个整数,指向我记忆中“a”字符的位置。这部分是我不明白的。为什么?
我们不应该只能通过首先取消引用指针来为字节赋值吗?
为什么?因为这就是指针的作用,它们的值是一个内存地址。的类型"abc"
实际上是const char[4]
(空终止符的类型之一)。数组可以衰减到指向它们的第一个元素的指针。
我们不应该只能通过首先取消引用指针来为字节赋值吗?
否。要将值分配给对象,请将该值分配给对象。当您想将一些东西分配给指针指向的内容时,您可以取消对指针的引用:
int x;
int* y = &x; // <- initialize the pointer with address of x
*y = 5; // dereference y and assign 5 to x
关于如何管理字符串文字的内存,我向您推荐这个答案:https : //stackoverflow.com/a/2740728/4117728
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句