c - 在 C99 中打印带和不带 & 的指针之间的区别

标签 c pointers c99

考虑以下代码:

    const char* text = "hi";
    printf("%s\n",text);
    printf("%p\n", &text);
    printf("%p\n", text);

每个 printf 从哪里获取它打印的值?

有什么区别?

最佳答案

所以让我们记住指针是内存地址。 text 是,我想您知道,是指向 char 数组的第一个(或第 0 个,取决于您如何看待它) block 的指针。 & 是“地址”运算符,它返回内存地址(即指向...的指针),无论其后是什么。由于 text 的文字指针值本身就是某种数据,因此它必须存储在内存中的某个位置。所以 &text 返回存储 text 值的地址。像这样: POINTERS!!!

关于c - 在 C99 中打印带和不带 & 的指针之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833557/

相关文章:

在 Windows 上创建线程数组

c - —"volatile void function( ... )"是做什么的?

在不使用 c99 标准的情况下使用 bool 编译 c 代码

c - 如何使用结构从文本文件中读取并将其加载到内存中?

mysql - Eclipse中使用C程序连接MYSQL

c - C 中的结构体遇到问题

c - 给一个整型数组赋值会改变另一个整型数组

c - 如何分配、初始化和重新分配 char 指针数组?

编译用 C99 编写的 DLL,可在大多数 Windows 版本上开箱即用

c - 理解代码背后的数学原理