1 / 63
文档名称:

C语言终极面试宝典-C语言面试必备(共62页).doc

格式:doc   大小:176KB   页数:63页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言终极面试宝典-C语言面试必备(共62页).doc

上传人:bai1968104 2022/2/24 文件大小:176 KB

下载得到文件列表

C语言终极面试宝典-C语言面试必备(共62页).doc

文档介绍

文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
第一部分:基本概念及其它问答题
1、关键全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
19、程序的内存分配
答:一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
4、文字常量区—常量字符串就是放在这里的。程序结束后由系统释放。
5、程序代码区—存放函数体的二进制代码
例子程序
这是一个前辈写的,非常详细
//
  int a=0;    //全局初始化区
  char *p1;   //全局未初始化区
  main()
  {
   intb;栈
   char s[]="abc";   //栈
   char *p2;         //栈
   char *p3="";   //\0在常量区,p3在栈上。
   static int c=0;   //全局(静态)初始化区
   p1 = (char*)malloc(10);
   p2 = (char*)malloc(20);   //分配得来得10和20字节的区域就在堆区。
   strcpy(p1,"");   //\0放在常量区,编译器可能会将它与p3所向""优化成一个地方。
}
20、解释堆和栈的区别
答:堆(heap)和栈(stack)的区别
(1)申请方式
stack:由系统自动分配。例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间
heap:需要程序员自己申请,并指明大小,在c中malloc函数
如p1=(char*)malloc(10);
在C++中用new运算符
如p2=(char*)malloc(10);
但是注意p1、p2本身是在栈中的。
(2)申请后系统的响应
栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。
堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,
会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。
精选优质文档-----倾情为你奉上
精选优质文档-----倾

最近更新

2025年八年级英语上册阶段性检测试题 15页

小学一年级语文教学工作总结2019第一学期 3页

最新2019新人教版一年级语文下册期末复习资料.. 16页

新教材数学人教B版必修第四册练习第十章单元测.. 8页

2019年大四学生工作总结 2页

2019年美术教师年终考核自我鉴定二 3页

精辟爱情句子锦集55句 4页

每日友谊段子精选 5页

节日的味道作文2篇 5页

关于友谊的经典英文诗歌 3页

春节作文300字4篇-1 3页

2025年交房管理标准化指引 35页

关于体育课说课稿范文汇编5篇 24页

读书名言名句摘录54句 5页

毕业生优秀自荐信范文合集五篇 5页

精选古风唯美的签名汇编39句 4页

2025年河北外国语学院单招(语文)测试题库必.. 169页

2025年主题班会自己的事情自己做 3页

2025年江西省赣州市单招语文测试模拟题库汇编.. 168页

2025年安徽职业技术学院单招职业适应性测试题.. 62页

2025年安徽职业技术学院单招职业技能测试题库.. 128页

2025年安徽工业经济职业技术学院单招职业倾向.. 126页

2025年芜湖职业技术学院单招职业倾向性测试题.. 60页

2024年海南中考数学试题及答案word 10页

最新部编版四年级道德与法治下册全册教案【完.. 55页

基于单片机的安防监控系统研究与设计 24页

中文网络成瘾量表修订(CIASR) 2页

王虎应六爻卦例说真完整版样稿 73页

解密民国梅花党及地下八大宝库 4页