变量的存储

[复制链接]
883|15
 楼主| wuhany 发表于 2022-6-9 19:11 | 显示全部楼层 |阅读模式
#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);

}大家觉得这三个变量在内存中谁在前,谁在后,谁在什么位置?
jiahy 发表于 2022-6-9 19:17 | 显示全部楼层

什么意思?不是很明白你说的什么,能再解释一下这个现象吗
zwll 发表于 2022-6-9 19:19 | 显示全部楼层
输出结果出乎很多人意料,并非第一个变量就在内存的初始部分,而是刚好颠倒。
zwll 发表于 2022-6-9 19:21 | 显示全部楼层

本帖子中包含更多资源

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

×
supernan 发表于 2022-6-9 19:23 | 显示全部楼层
我记得好像是,语句都是从右往左,所以没毛病
 楼主| wuhany 发表于 2022-6-9 19:26 | 显示全部楼层

本帖子中包含更多资源

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

×
jlyuan 发表于 2022-6-9 19:28 | 显示全部楼层

知道这个的目的是什么?有点好奇啊..
更多操作
juventus9554 发表于 2022-6-9 19:30 | 显示全部楼层
这个堆栈应该是向下堆的,所以地址越大越在前
 楼主| wuhany 发表于 2022-6-9 19:33 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
taoest 发表于 2022-6-10 16:34 | 显示全部楼层
怎么堆放是编译器的事,你写程序不应该去琢磨这些事情。关注你自己的业务。
你今天搞清楚了个编译器了,换个平台,又可能全部不一样了。没有意义的。
tpgf 发表于 2022-7-3 16:10 | 显示全部楼层
难道不是顺序执行吗
nawu 发表于 2022-7-3 18:45 | 显示全部楼层
可以在调试的时候看一下寄存器状态
aoyi 发表于 2022-7-3 18:56 | 显示全部楼层
为什么要关心这个问题呢
zljiu 发表于 2022-7-3 19:04 | 显示全部楼层
这个没有优先级吧
gwsan 发表于 2022-7-3 19:12 | 显示全部楼层
这个应该是随机的吧
tfqi 发表于 2022-7-3 19:23 | 显示全部楼层
这个应该是指针了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

879

主题

10435

帖子

4

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