gpt4 book ai didi

c - ptr、*ptr 和 &ptr 之间的区别

转载 作者:行者123 更新时间:2023-11-30 21:45:45 24 4
gpt4 key购买 nike

我最近在研究C语言中的指针,我似乎无法完全理解这段代码:

int *ptr= (*int) 99999;
*ptr = 10;
printf("%d\n,*ptr); //Outputs: 10
printf("%p\n",&ptr); //Outputs: 0029FF14
printf("%p\n",ptr); //Outputs: 0001869F

有疑问吗?

  1. “&ptr=0029FF14”是存储“*ptr=10”的内存位置吗?
  2. “ptr=0001869F”是存储“&ptr=0029FF14”的内存位置吗?如果不是那么 ptr 是什么?

谢谢!

我相信这个问题与“C 指针语法”帖子不同,因为它不区分 ptr、*ptr 和 &ptr,这意味着该帖子没有解释为什么“ptr”根据运算符包含不同的值附带。[已编辑]

最佳答案

  • ptr 是指针本身。
  • *ptr 是它指向的值。
  • &ptr 是指针的地址。

所以,哇,

  1. &a 是存储a 的内存位置。

  2. a 是存储*a 的内存位置。

关于c - ptr、*ptr 和 &ptr 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35950099/

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