gpt4 book ai didi

C 编程打印指针

转载 作者:行者123 更新时间:2023-11-30 20:11:33 28 4
gpt4 key购买 nike

我有这段代码:

printf("Address for ptr_one %p\n", &ptr_one);
printf("Non-Address for ptr_one %p\n", ptr_one);
printf("value for ptr_one %p\n\n", *ptr_one);

输出:

Address for ptr_one 0xffffcbd8
Non-Address for ptr_one 0x600042b26
value for ptr_one 0x19

据我了解,第一行是指针地址,第三行是该地址处的值。但是第二行打印出来的到底是什么?

它的初始化如下:

int *ptr_one = (int *)malloc(sizeof(int));
*ptr_one = 25;

编辑:添加初始化代码

最佳答案

看起来就像您的代码如下所示:

int one = 0x19;
int *ptr_one = &one;

(您已经编辑了代码以显示实际情况,但它在功能上与我上面显示的相同(无论如何都在内存和指向内存的指针方面),所以我不'不需要改变它)。

然后你得到的是:

(ptr_one "variable")
|
V
+---------------+ +-----------+
| ptr_one value | --> | one value |
+---------------+ +-----------+

具有以下描述:

  • ptr_one 0xffffcbd8 的地址是实际 ptr_one 变量的地址,它存储在内存中。
  • ptr_one 0x600042b26 的非地址ptr_one 变量的,也是以下的地址 one 变量。
  • ptr_one 0x19 的值one 变量的值。

关于C 编程打印指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40209510/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com