[置顶] 栈/入栈/出栈顺序(c语言)-linux
说明:
1、栈底为高地址,栈顶为低地址。
2、入栈顺序:从右到左。
解释1:栈在内存中的结构
[注:0x00 到 0x04之间间隔4个地址]
入栈:指针先指向0x10,从高地址向低地址方向填数值,最终指针在0x00位置结束。[栈底 到 栈顶][高地址 到 底地址]
出栈:从0x00位置开始遍历到0x10位置。[栈顶 到 栈底][底地址 到 高地址]
解释2:程序入栈顺序
#include <stdio.h>
int t(int e0, int e1, int e2 )
{
int a=1;
int b=2;
int d0=4,d1=44,d2=444; printf("e2:%3d, 0x%x\n", e2, &e2);
printf("e1:%3d, 0x%x\n", e1, &e1);
printf("e0:%3d, 0x%x\n", e0, &e0); printf(" a:%3d, 0x%x\n", a, &a);
printf(" b:%3d, 0x%x\n", b, &b); printf("d0:%3d, 0x%x\n", d0, &d0);
printf("d1:%3d, 0x%x\n", d1, &d1);
printf("d2:%3d, 0x%x\n", d2, &d2); int i;
int * p = &a;
for(i=0;i<5;i++)
printf("%3d, 0x%x\n", *(p-i),p-i);
return 0;
} int main()
{
t(5, 55, 555);
return 0;
}
程序结果:
e2:555, 0xbf8c92c8
e1: 55, 0xbf8c92c4
e0: 5, 0xbf8c92c0
a: 1, 0xbf8c92ac
b: 2, 0xbf8c92a8
d0: 4, 0xbf8c92a4
d1: 44, 0xbf8c92a0
d2:444, 0xbf8c929c
1, 0xbf8c92ac
2, 0xbf8c92a8
4, 0xbf8c92a4
44, 0xbf8c92a0
444, 0xbf8c929c
上面的结果就是程序入栈顺序:遵循从右到左,从上到下入栈。
[注释:e0:0xbf8c92c0 -> a:0xbf8c92ac 之间缺少0xbc 0xb8 0xb4 0xb0,总的16个地址,该地址可能是用于函数建设用 ]
[置顶] 栈/入栈/出栈顺序(c语言)-linux的更多相关文章
- 写一个栈,实现出栈、入栈、求最小值,时间复杂度为O(1)
#-*-coding:utf-8-*- ''' 需求:写一个栈,实现出栈.入栈.求最小值,时间复杂度为O(1) 思路:通过两个栈实现,一个栈stack,一个辅助栈min_stack,记录stack中的 ...
- 【NOJ2024】入栈序列和出栈序列
入栈序列和出栈序列 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:293 测试通过:68 比赛描述 给出入栈序列 ...
- Python 根据入栈顺利判定出栈顺序
1.读取入栈,出栈数据: 2.把数据分别转化成整数列表: 3.新建栈列表,用入栈数据进行压栈:如果栈列表不为空,并且栈顶层数据为出栈的元素:删除栈列表的顶层数据: 4.如果栈列表不为空,说明栈列表里面 ...
- [置顶] hdu 4699 2个栈维护 or 伸展树
hdu 4699 Editor 题意:对一个数列进行操作,光标位置后面插入一个权值为x的数,删除光标前的那个数,光标左移一位,光标右移一位,求到k位置的最大的前缀和.. 注意这里的k是在光标之前的, ...
- 弹出框,先弹出遮罩有透明度灰色100%高宽,置顶z-index:999---再弹出框最顶部z-index:9999
<div class="mask"></div> <div class="maskbox"> <form id=&qu ...
- [置顶] 在Visual Studio 2008上调试C语言程序
C语言的地位和重要性就不用说了,但,很多人学习C语言,还在使用Visual C++ 6.0,甚至还有人使用Turbo C,很无语,只说一句吧:“OUT了". 让我们体验一下华丽的Visual ...
- [置顶] a+=1/a=+1/a-=1区别-c语言
1.解释 a+=1/a=+1/a-=1 含义 a+=1 实质等于 a += 1,也就是等于 a = a + 1: a=+1 实质等于 a = +1:[因为运算符中没有=+,很多人误以为是 a =+ 1 ...
- [置顶] JNI之java传递数据给c语言
1.首先创建 DataProvider类: package com.pl.ndkpassdata; public class DataProvider { static{ System.loadLib ...
- HDU 1022 Train Problem I[给出两个长n的串,入栈和出栈顺序,判断入栈顺序是否可以匹配出栈顺序]
Train Problem I 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 As the new term comes, the Ignatius Train Sta ...
随机推荐
- UVa 524 Prime Ring Problem【回溯】
题意:给出n,把从1到n排成一个环,输出相邻两个数的和为素数的序列 照着紫书敲的, 大概就是这个地方需要注意下,初始化的时候a[0]=1,然后dfs(1),从第1个位置开始搜 #include< ...
- asp.net获取当前页面源码并生成静态页面
StringWriter stringWriter = new StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(strin ...
- PHP查询数据库中满足条件的记录条数(二种实现方法)
在需要输出网站用户注册数或者插入数据之前判断是否有重复记录时,就需要获取满足条件的MySQL查询的记录数目,接下来介绍两种查询统计方法,感兴趣的朋友可以了解下啊,或许对你有所帮助 在需要输出网 ...
- html5客户端跨域访问php服务端数据
客户端代码: var param = $.param( { feed:JSON.stringify({ content:'abcd' }) } ); $http({ url: 'http://61.1 ...
- Woobuntu woobuntu_build.sh hacking
# Woobuntu woobuntu_build.sh hacking # 说明: # 有时候因为一些需求,我们需要定制一些系统,包括Ubuntu系统,于是 # 我们自然需要知道如何去解包一个Ubu ...
- zend studio安装xdebug调试工具
1. 软件准备 登录xdebug 版本检测地址 http://xdebug.org/wizard.php :将phpinfo产生的数据页面复制到其文本框内,显示类似如下内容: 二.将下载的xdebu ...
- erl0001-Erlang 设计原则 process port io
Erlang原理 (转载自ITEYE cryolite博客 ps:精彩)by Robert Virding This is a description of some of the basic pro ...
- Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
最近的项目是微信公众号平台的开发,微信官方给出的Demo是PHP的,发现大部分的学习资料也是PHP,那好吧,放弃Java,来段儿PHP吧 下面说说Mac下搭建PHP环境 数据库:MySQL-5.6.2 ...
- AngularJS:实现动态添加输入控件功能(转)
http://www.cnblogs.com/ilovewindy/p/3849428.html <!DOCTYPE html> <html> <head> < ...
- SharePoint 2010 列表项事件接收器 ItemAdded 的使用方法
列表项事件处理器是继承于Microsoft.SharePoint.SPItemEventReceiver的类,Microsoft.SharePoint.SPItemEventReceiver类提供了许 ...