c - 我真的很困惑理解 C 中的数组指针

标签 c arrays pointers

#include <stdio.h>

int main (void)
{
    char *str = "Hello"; //defining and initializing the str pointer, which is directing to 'H'.

    printf("%s\n", str);
    printf("%p\n", str);
    return 0;
}

结果是:

Hello
0000000000404000

我的问题是 0000000000404000 是从哪里来的?

最佳答案

格式说明符 %p 将打印包含在 char* str 变量中的地址,而 %s 说明符将打印实际的字符串文字 你好。内存中的地址 0x00000000 00404000Hello 所在的位置。

关于c - 我真的很困惑理解 C 中的数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41154160/

相关文章:

c - 该代码在 gcc 编译器上正常工作,但是当我将其提交到编码门户(SPOJ)时,它显示运行时错误,为什么?

c - strcpy() 将字符串从一个结构复制到另一个结构

C 编程 : Saving value in for loop and finding minimum

c - 在C程序中在txt文件的一行中搜索2个不同的单词

c++ - 为什么 CMake 从 INCLUDE_DIRECTORIES() 调用中删除一些包含目录?

c++ - 使用 nlohmann/json 将 JSON 转换为数组

c - 使用指向结构的指针丢失内存字节

java - 如何在java中生成特定大小的二进制blob对象?

Python - 数组中的字符串和数字,想要对行中的所有数值求和,并将值附加到行末尾

c++ - 为什么这说没有来自 "nullptr_t to const"的已知转换?