重温全局变量、堆、栈等概念

本文分析了全局变量、局部变量、堆和栈的概念,并在Ubuntu和Keil环境下进行了验证。在Ubuntu中,堆栈地址自上而下递增,而在32单片机中则相反。实验过程参考了他人,目前尚未实现上机位传输功能。
摘要由CSDN通过智能技术生成

一、全局变量、局部变量、堆、栈分析

1、全局变量
是编程语言 中 常见的一种 变量 ,通过 全局 定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序 中 的所有对象或函数进行引用, 全局变量 的定义有利于程序的 变量 共享,简化了添加和修改的程序。
2、局部变量
指在一个函数内部或复合语句内部定义的变量。 局部变量的生存期:从函数被调用的时刻算起到函数返回调用处的时刻结束 。但是局部变量会屏蔽全局变量。
3、堆
堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:
a.堆中某个结点的值总是不大于或不小于其父结点的值;
b.堆总是一棵完全二叉树。
4、栈
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

存储顺序
全局变量
局部变量

二、Ubuntu中进行验证

1、新建bl.c文件进行编写
在这里插入图片描述
2、代码如下:

#include <stdio.h>
#include <stdlib.h>
//定义全局变量
int init_global_a = 1;
int uninit_global_a;
static int inits_global_b = 2;
static int uninits_global_b;
void output(int a)
{
	printf("he
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值