重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
目录
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网络空间、营销软件、网站建设、内丘网站维护、网站推广。内存四区
栈区
堆区
静态区:
常量区:
例题:
题解
选择题
填空题
在C/C++中内存分为4个区:栈区,堆区,静态区(数据段), 常量区(代码段)
栈区栈的生长空间向下,地址从高地址到低地址,所有的变量,函数调用的开销,都在栈区,该区的内存由系统进行管理,不受程序员控制。
堆区堆的生长空间向上,地址从低地址到高地址,所有动态开辟的空间都在栈区,此处的内存需要程序员手动进行开辟和释放,内存泄漏就发生在栈区。
静态区:静态区也叫数据段,存放静态变量和全局变量,定义在全局的变量和用static修饰的变量放在这个区域。
常量区:常量区也叫做代码段,存放只读数据,如const修饰的变量,常量,程序执行依赖的代码,都放在这个区域,试图修改常量区的数据会被系统警告报错,甚至导致程序崩溃。
例题: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);
}
1.选择题
选项: A.栈 B.堆 C.数据段(静态区) D.代码段(常量区)
globalVar在哪里?____ staticGlobalVar在哪里?____
staticVar在哪里?____ localVar在哪里?____
num1 在哪里?____
char2在哪里?____ *char2在哪里?___
pChar3在哪里?____ *pChar3在哪里?____
ptr1在哪里?____ *ptr1在哪里?____
2.填空题
sizeof(num1) = ____;
sizeof(char2) = ____; strlen(char2) = ____;
sizeof(pChar3) = ____; strlen(pChar3) = ____;
sizeof(ptr1) = ____;
题解 选择题globalVal 对于 globalVal 我们可以看到它定义在函数体的外面,所以他具有全局属性,同时其没有const修饰,说明他是个变量,所以他在数据段,选C.
staticGlobalVal 与globalVal类似,只是加上了static修饰,他没有常属性,所以仍然在数据段,选C
staticVar 他是在函数内部的,有static修饰,而static修饰的量在定义时便已经初始化好了(因为调试汇编代码,可以看到没有static修饰变量定义时的汇编代码),而他又可以修改,所以他在数据段,选C.
localVar 没有任何修饰, 普通变量, 存在栈区, 选A
num1 数组,没有任何修饰,存在栈区, 选A
char2 字符数组,与num1相似, 存在栈区, 选A
*char2 字符数组中首元素,数组的每个元素都在栈区,选A
pChar3 指针变量,没有任何修饰,存放在栈区, 选A
*pChar3 指针指向的首元素,pChar指向一个字符串常量,该常量放在常量区,选D
ptr1 动态开辟空间,本事是一个指针,存在栈区,指向一块堆区的空间,选A
*ptr1 ptr1指向的对象,在堆区,选B
填空题1. num1 是数组名,sizeof(数组名)求的是数组所占的内存,答案是类型大小乘元素数量,sizeof(int) * 10 也就是 40
2. char2 字符数组,因为以字符串给一个字符数组赋值会在末尾默认补'\0',所以答案是 5
3. 用strlen求字符串的大小,返回字符串的长度,"abcd"只有四个字符,答案是 4
4. pChar3是一个指针,指针的大小与类型无关,在32位环境是4,64位环境是8, 答案是 4 / 8
5. 此处求得是pChar3所指向字符串的长度, 答案和第三题一样, 4
6. ptr1是指针,答案是 4/8
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧