测试代码:
#include <iostream>
using namespace std;
int main()
{
const char* b="str";
cout << b << endl;
cout << *b << endl;
cout << &b << endl;
cout << *(&b) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果:
str
s
0x7ffdf39c27f0
str
Run Code Online (Sandbox Code Playgroud)
我在 web runoob 在线编译器上运行我的代码
为什么我会得到这些结果?我查看了一些有关 char* 的问题,但不足以让我理解。有人可以向我解释一下吗?图片最好。
我想通过推荐的书籍或博客了解更多信息。
顺便说一句,使用char b[]代替const char*,我得到了相同的结果。
非常感谢大家。
我只是想知道为什么 char 指针的值不是地址。
我认为地址类似于 0x7ffdf39c27f0。一个内存地址。
但const char* b = "str"。b 就是str.
我发现这*b与 相同*("str")。
所以我想知道记忆里到底发生了什么?为什么 char 指针的值不是地址?