c - C指针不显示到相同的地址?*pa=a; 帕=&a; 帕!= &帕
问题描述
为什么它不是相同的内存地址?这是在 C 中。
int *pa;
int a = 80;
pa = &a; //save memory address from a to pa
*pa = 1000; //assign value to that address; *pa and a have now the same value
%p... memory address
%d... decimal
printf ("a: %d \n", a); //100
printf ("*pa: %d \n", *pa); //100
printf ("pa: %p \n", pa); //0x7ffcd1370c54
printf ("&a: %p \n", &a); //0x7ffcd1370c54
printf ("&pa: %p \n", &pa); //0x7ffcd1370c60
&pa 总是比 pa 多“6”。
pa, &pa, &a 不应该有相同的地址吗?
解决方案
&pa
实际上是pa的地址,
pa
是pa的值,因此是a的地址
它们是不同的。
推荐阅读
- reactjs - 如何正确设置它,这样我就不会对未安装的组件执行状态更新?
- reactjs - React Native App,如何在浏览器上运行?它不是一个世博项目
- ansible - 在 Ansible 中使用条件 when 语句,仅在调用某个版本的包时运行 playbook 中的任务
- javascript - 使用聚合 MongoDB 计算平均值
- linux - 单链中 BPF 过滤器之间的确切关系是什么
- wireshark - 尝试使用 Time Shift 工具时,Wireshark 给出错误
- python - AttributeError:模块'tensorflow_core.compat.v2'没有属性'__internal__'(一周前工作?)
- terraform - Terraform 无法检测到 mongodb .tf 文件中的所有更改
- mysql - 制作 COUNT 个的 AVG
- kubernetes - Minikube:自动从 GCR 中提取所有最新图像并重新启动这些 pod