小编teq*_*ila的帖子

C++ 中关于 char* 的困惑

测试代码:

#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 指针的值不是地址?

c++ pointers char

1
推荐指数
1
解决办法
142
查看次数

标签 统计

c++ ×1

char ×1

pointers ×1