说明:

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的更多相关文章

  1. 写一个栈,实现出栈、入栈、求最小值,时间复杂度为O(1)

    #-*-coding:utf-8-*- ''' 需求:写一个栈,实现出栈.入栈.求最小值,时间复杂度为O(1) 思路:通过两个栈实现,一个栈stack,一个辅助栈min_stack,记录stack中的 ...

  2. 【NOJ2024】入栈序列和出栈序列

    入栈序列和出栈序列 时间限制(普通/Java):1000MS/3000MS         运行内存限制:65536KByte 总提交:293          测试通过:68 比赛描述 给出入栈序列 ...

  3. Python 根据入栈顺利判定出栈顺序

    1.读取入栈,出栈数据: 2.把数据分别转化成整数列表: 3.新建栈列表,用入栈数据进行压栈:如果栈列表不为空,并且栈顶层数据为出栈的元素:删除栈列表的顶层数据: 4.如果栈列表不为空,说明栈列表里面 ...

  4. [置顶] hdu 4699 2个栈维护 or 伸展树

    hdu 4699  Editor 题意:对一个数列进行操作,光标位置后面插入一个权值为x的数,删除光标前的那个数,光标左移一位,光标右移一位,求到k位置的最大的前缀和.. 注意这里的k是在光标之前的, ...

  5. 弹出框,先弹出遮罩有透明度灰色100%高宽,置顶z-index:999---再弹出框最顶部z-index:9999

    <div class="mask"></div> <div class="maskbox"> <form id=&qu ...

  6. [置顶] 在Visual Studio 2008上调试C语言程序

    C语言的地位和重要性就不用说了,但,很多人学习C语言,还在使用Visual C++ 6.0,甚至还有人使用Turbo C,很无语,只说一句吧:“OUT了". 让我们体验一下华丽的Visual ...

  7. [置顶] 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 ...

  8. [置顶] JNI之java传递数据给c语言

    1.首先创建 DataProvider类: package com.pl.ndkpassdata; public class DataProvider { static{ System.loadLib ...

  9. HDU 1022 Train Problem I[给出两个长n的串,入栈和出栈顺序,判断入栈顺序是否可以匹配出栈顺序]

    Train Problem I 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 As the new term comes, the Ignatius Train Sta ...

随机推荐

  1. 设置mysql的interactive_timeout和wait_timeout的值

    1,为什么要重新设置这两个变量的值? 因为如果数据库默认这两个变量的值是8小时(即28800秒)如果在8小时之内没有连接到数据库,等下次再连的时候就会抛连接超时,或连接关闭这样的异 常,但是多连接几次 ...

  2. BZOJ2337: [HNOI2011]XOR和路径

    题解: 异或操作是每一位独立的,所以我们可以考虑每一位分开做. 假设当前正在处理第k位 那令f[i]表示从i到n 为1的概率.因为不是有向无环图(绿豆蛙的归宿),所以我们要用到高斯消元. 若有边i-& ...

  3. Java Web编程的主要组件技术——Servlet

    参考书籍:<J2EE开源编程精要15讲> Servlet是可以处理客户端传来的HTTP请求,并返回响应,由服务器端调用执行,有一定编写规范的Java类. 例如: package test; ...

  4. WEB前端开发成长指南

    小 编注:相比起网页射击狮,操纵代码的前端攻城狮凭着双手在键盘巴拉巴拉敲出的字符,就能赋予二次元的静态页面生命,各种lovely 的~~fabulous的~~elegant的交互效果,那叫一个锦上添花 ...

  5. codevs 1088 神经网络

    bfs.语文题. #include<iostream> #include<cstdio> #include<cstring> #include<algorit ...

  6. Task '' not found in root project '***'.

    android编译app报错:Task '' not found in root project '***'.将build.gradle里的 if (gradle.gradleVersion > ...

  7. JS调用客户端EXE

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. UVA 10298 Power Strings 字符串的幂(KMP,最小循环节)

    题意: 定义a为一个字符串,a*a表示两个字符相连,即 an+1=a*an ,也就是出现循环了.给定一个字符串,若将其表示成an,问n最大为多少? 思路: 如果完全不循环,顶多就是类似于abc1这样, ...

  9. cocoapods 终极方案

    最近各种错误, 全部刷新 再说 sudo gem install -n /usr/local/bin cocoapods $ sudo gem update --system // 先更新gem $ ...

  10. MVC ActionResult -- JavaScriptResult,JsonResult

    以下是ActionResult的继承图: 大概的分类: EmptyResult:表示不执行任何操作的结果 ContentResult :返回文本结果 JavaScriptResult:返回结果为Jav ...