一、全局变量、局部变量、堆、栈分析
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