【发布时间】:2020-09-04 11:04:48
【问题描述】:
从本主题之前的问题中,我了解到指针指向字符串的第一个字符,并希望后面的字符占据字符串的一部分,直到出现空字符。 我的问题是这个声明例如是如何工作的:
const char* name = "abc";
据我了解,const char* 的值不是短语“abc”,它是一个整数,它指向我记忆中“a”字符的位置。 这部分是我不明白的。为什么?
难道我们不应该只能通过首先取消引用指针来为字节赋值吗?
【问题讨论】:
-
如果您使用 int 作为示例数据类型,我认为这个问题可以更好地集中到令您困惑的地步。在我看来,C++ 中类似 C 的“字符串”初始化的复杂性使这里的事情变得复杂。顺便说一句,您显示的代码似乎表明您正在用 C 语言而不是 C++ 思考。考虑相应地标记。抱歉,如果我对您的措辞猜得太多,只是想提供帮助。
-
指针不是整数,即使您的实现模型的内存模型以这种方式寻址,称为平面地址空间,并且在当今的用户程序中很常见。指针就是指针。
-
考虑通过添加显示您想要做什么的代码(或伪代码)来使问题更加清晰。也许我们可以帮助解决编译器错误。