第三节 局部变量与全局变量的区别
记住知识点:
1、全局变量,在程序生成后,内存地址是固定了,只有重新编译后
,内存地址才会改变
。
2、全局变量,在汇编中是内存地址的格式存储;局部变量是以[ebp-xxx]的格式存储。
局部变量与全局变量的区别
全局变量与局部变量的区别在于作用域的不同,且存在时间也可能不同。不管有不有外部的变量,main函数中的变量都不能称为全局变量。
全局变量是可以被本程序所有对象或函数引用。
例:
图中的代码,t1为全局变量,可以在main函数中使用,也可以在a函数中使用。
而t2 t3则为局部变量,它们只能在花括号内部被使用。
所以a函数不能使用t2,main函数也不能使用t3。
第四课 内存图
int globalVar = 1; //全局、局部变量存储在数据段
static int staticGlobalVar = 1;
void Test()
{
static int staticVar = 1;
int localVar = 1;
int num1[10] = { 1, 2, 3, 4 };
char char2[] = "abcd";
char* pChar3 = "abcd";
int* ptr1 = (int*)malloc(sizeof (int)* 4);
int* ptr2 = (int*)calloc(4, sizeof(int));
int* ptr3 = (int*)realloc(ptr2, sizeof(int)* 4);
free(ptr1);
free(ptr3);
}
上述代码分别存储在什么地方呢?思考一下吧 ヾ(✿゚▽゚)ノ
如下是内存区域划分图,跟刚才你想的一样吗 ?????
标签:逆向,内存地址,函数,int,局部变量,main,全局变量 From: https://www.cnblogs.com/bonelee/p/17280945.html