[PIC32/SAM] 变量的存储

[复制链接]
626|5
 楼主| heisexingqisi 发表于 2020-10-28 22:34 | 显示全部楼层 |阅读模式
  1. #include "stdio.h"

  2. int main(void)
  3. {
  4.         unsigned char x,*p,**pp;
  5.         x=12;
  6.         p=&x;
  7.         pp=&p;
  8.         printf("*p=%d\n",*p);
  9.         printf("**pp=%d\n",**pp);
  10.         printf(" p=%d\n",p);
  11.         printf("pp=%d\n",pp);
  12.         printf("pp=%d\n",&pp);
  13. }
大家觉得这三个变量在内存中谁在前,谁在后,谁在什么位置?
 楼主| heisexingqisi 发表于 2020-10-28 22:35 | 显示全部楼层

输出结果出乎很多人意料,并非第一个变量就在内存的初始部分,而是刚好颠倒。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

我记得好像是,语句都是从右往左,所以没毛病  发表于 2020-10-28 22:41
 楼主| heisexingqisi 发表于 2020-10-28 22:41 | 显示全部楼层

实际上是这样的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
CoolSilicon 发表于 2020-10-29 10:58 | 显示全部楼层
额??
知道这个的目的是什么?有点好奇啊..
ayb_ice 发表于 2020-10-30 10:05 | 显示全部楼层
heisexingqisi 发表于 2020-10-28 22:35
输出结果出乎很多人意料,并非第一个变量就在内存的初始部分,而是刚好颠倒。 ...

这个堆栈应该是向下堆的,所以地址越大越在前
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

2770

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部