一.C语言知识回顾篇
1.C/C++程序内存的各种变量存储区域
C语言在内存中一共分为如下几个区域,分别是:
(1)内存栈区: 存放局部变量名;
(2)内存堆区: 存放new或者malloc出来的对象;
(3)常数区: 存放局部变量或者全局变量的值;
(4)静态区: 用于存放全局变量或者静态变量;
(5)代码区:二进制代码。
2. 重温C语言程序里全局变量、局部变量、堆、栈等概念、
(1)全局变量:全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
(2)局部变量:局部变量(Local variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。在C++、C#、Ruby这些面向对象语言中,一般只使用局部变量。面向对象编程是现在普遍采用的是软件开发方法,因此无需考虑是局部变量还是全局变量,说到变量,往往都是局部变量。
(3)堆栈:在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点:堆,队列优先,先进先出。栈,先进后出(First-In/Last-Out)。
二.不同环境下运行C语言代码
1.运行如下代码
#include <stdio.h>
#include <stdlib.h>
int k1 = 1;
int k2;
static int k3 = 2;
static int k4;
int main(