我是一个初学者,我完全不知道一些字符串是如何返回指向其在内存中位置的指针的?
char* str = "okay"
为什么它是指针?毕竟,我们甚至不使用new
char如何存储地址
它不是,它是指向char
的指针。
一些字符串如何返回指向其位置的指针
字符串文字(通常(是存储在内存中的只读部分中的常量字符数组,该只读部分映射到可执行文件中的某个部分。更多细节是特定于操作系统的,但重要的是字符串文字会像其他数组一样衰减为指向其第一个字符的指针。
毕竟,我们甚至不使用
new
new
和malloc()
当然会返回指针,但它们并不是指针的唯一来源。正如您在代码中看到的,字符串文字也是指针的来源,如果您愿意,没有什么可以阻止您编写char *p = (char *)0x800;
之类的东西,这是您在内核或真实模式编程中经常看到的。