打印
[PIC32/SAM]

变量的存储

[复制链接]
451|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#include "stdio.h"

int main(void)
{
        unsigned char x,*p,**pp;
        x=12;
        p=&x;
        pp=&p;
        printf("*p=%d\n",*p);
        printf("**pp=%d\n",**pp);
        printf(" p=%d\n",p);
        printf("pp=%d\n",pp);
        printf("pp=%d\n",&pp);
}
大家觉得这三个变量在内存中谁在前,谁在后,谁在什么位置?

使用特权

评论回复
沙发
heisexingqisi|  楼主 | 2020-10-28 22:35 | 只看该作者

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

使用特权

评论回复
评论
liziride 2020-10-28 22:41 回复TA
我记得好像是,语句都是从右往左,所以没毛病 
板凳
heisexingqisi|  楼主 | 2020-10-28 22:41 | 只看该作者

实际上是这样的

使用特权

评论回复
地板
CoolSilicon| | 2020-10-29 10:58 | 只看该作者
额??
知道这个的目的是什么?有点好奇啊..

使用特权

评论回复
5
ayb_ice| | 2020-10-30 10:05 | 只看该作者
heisexingqisi 发表于 2020-10-28 22:35
输出结果出乎很多人意料,并非第一个变量就在内存的初始部分,而是刚好颠倒。 ...

这个堆栈应该是向下堆的,所以地址越大越在前

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

2603

帖子

2

粉丝