11、队列和栈有什么区别?

答:队列先进先出,栈后进先出。

12、不能做 switch()的参数类型是什么?

答 :switch 的参数不能为实型。

13、局部变量能否和全局变量重名?

答:能,局部会屏蔽全局,要用全局变量,需要使用”::”。局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

14、如何引用一个已经定义过的全局变量?

答 :可以用引用头文件的方式,也可以用 extern 关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用 extern 方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

15、全局变量可不可以定义在可被多个.C 文件包含的头文件中?为什么?

答:可以,在不同的C 文件中以 static 形式来声明同名全局变量。可以在不同的 C 文件中声明同名的全局变量,前提是其中只能有一个 C 文件中对此变量赋初值,此时连接不会出错。

16、语句 for( ;1 ;)有什么问题?它是什么意思?

答:while(1)相同,无限循环。

17、do……while 和 while……do 有什么区别?

答:前一个循环一遍再判断,后一个判断以后再循环。

18、static 全局变量、局部变量、函数与普通全局变量、局部变量、函数static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什么区别?static 函数与普通函数有什么区别?

答:全局变量(外部变量)的说明之前再冠以 static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。==把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。==static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。?static 全局变量与普通的全局变量的区别:static 全局变量只初使化一次,防止在其他文件单元中被引用。?static 局部变量和普通局部变量的区别:static 局部变量只被初始化一次,下一次依据上一次结果值。?static 函数与普通函数的区别:static 函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。操作系统和编译器通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。局部变量则分配在堆栈里面。

19、讲述一下程序的内存分配

答:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—==一般由程序员分配释放,若程序员不释放,程序结束时可能由OS 回收。==注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。4、文字常量区—常量字符串就是放在这里的。程序结束后由系统释放。5、程序代码区—存放函数体的二进制代码例子程序。参考:

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 语句才能正确的释放本内存空间。另外, 由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。(3) 申请大小的限制栈:==在 Windows 下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS 下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示 overflow。==因此,能从栈获得的空间较小。堆:==堆是向高地址扩展的数据结构,是不连续的内存区域。==这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。(4) 申请效率的比较:栈:由系统自动分配,速度较快,但程序员是无法控制的。堆:是由new 分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便。另外,在 WINDOWS 下,最好的方式是用 Virtual Alloc 分配内存,他不是在堆,也不是在栈,而是直接在进程的地址空间中保留一块内存,虽然用起来最不方便。但是速度快,也最灵活。(5) 堆和栈中的存储内容栈:在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的 C 编译器中,参数是由右往左入栈的,然后是函数中的局部变量,注意静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址, 也就是主函数中的下一条指令,程序由该点继续运行。堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容由程序员安排。(6) 存取效率的比较aaaaaaaaaaa 是在运行时刻赋值的;bbbbbbbbbbb 是在编译时就确定的;但是,在以后的存取中,==在栈上的数组比指针所指向的字符串(例如:堆)快。==比如:对应的汇编代码如下:第一种在读取时直接就把字符串中的元素读到寄存器 cl 中,而第二种则要先把指针值读到edx 中,在根据 edx 读取字符,显然慢了。

▼▼▼

扫码加华妹~

新班占座/领取资料/最新活动

福利一

扫码免费领Linux视频资料~

福利二

喜讯 | 华清远见获批教育部2020年第一批产学合作协同育人项目!

2020-10-20

华清远见教育部高教司2020第一批“产学合作协同育人”项目申报指南

2020-10-20

华清高校开讲座 线下充电真不错

2020-10-19

1024程序员狂欢节 | 抽万元锦鲤大礼包(iPhone12、电动平衡车…),还有2重大礼等你来!

2020-10-15

关于华清远见华清远见武汉中心位于武汉市洪山区武汉工程大学(武昌校区)科技孵化器11 楼,学生的食宿与活动十分便捷,实验设备、师资力量、教学管理等方面全国一流。武汉中心拥有专业级讲师及资深工程师, 师资力量雄厚;拥有国内最先进的人工智能、云/大数据等开发硬件专业实验设备,其中85%以上的实验设备由华清远见自主研发;拥有以人为本的高级班主任老师,科学的教学管理制度。主要课程有嵌入式人工智能、Java大数据开发、Html5全栈开发、Python+人工智能等,并为每一位学员提供专业的就业指导,高薪就业的学员不计其数,做良心教育,做专业教育,做受人尊敬的职业教育。 微信搜一搜华清远见武汉中心点分享点点赞点在看

c malloc 头文件_干货笔记 | C/C++笔试面试详细总结(二)相关推荐

  1. c malloc 头文件_c++个人学习笔记——1.头文件声明

    简单介绍了C++头文件声明与C语言的差异,并对常见的部分头文件作了介绍. //C++中常用写法 最简单的C++程序往往是上面这样声明头文件. #include为C/C++中包含头文件命令,用于将指定头 ...

  2. c malloc 头文件_C 数据类型

    在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. C 中的类型可分为以下几种: 序号 类型与描述 1 基本类型 ...

  3. c malloc 头文件_C语言提高篇_malloc,realloc和calloc的区别

    1.malloc() 在内存的动态存储区中分配一块长度为size字节的连续区域,参数size为需要内存空间的长度,返回该区域的首地址. 其函数原型为void *malloc(unsigned int ...

  4. c malloc 头文件_C/C++笔试题:主要考察C/C++语言基础概念算法及编程,附参考答案...

    1.编写my_strcpy函数,实现与库函数strcpy类似的功能,不能使用任何库函数: 答:char *strcpy(char *strDest, const char *strSrc) { if ...

  5. c malloc 头文件_C/C++求职者必备 23 道面试题,一道试题一份信心!

    1. Static有什么用途? (1)函数体内static变量的作用范围是该函数体,该变量的内存只被分配一次,因此它的值在下次调用时不变: (2)模块内的static全局变量同样只能在该模块内的函数访 ...

  6. c语言打开当前目录下的文件_干货||嵌入式Linux下的C编程知识要点总结

    一 基本开发环境 Linux和C语言有着很深的渊源,因为Linux本身就是用C语言编写的.同时,在Linux操作系统中也提供了C语言的开发环境.这些开发环境一般包括程序生成工具.程序调试工具.工程管理 ...

  7. 机试记不住头文件_计算机考研机试攻略

    目录 写在前面的话 2 关于N诺 4 如何使用本书? 5 第一章 从零开始 8 1.1机试分析 8 1.2 IDE的选择与评测结果 10 1.3 DreamJudge的使用 11 1.4输入输出技巧 ...

  8. 单片机sleep函数的头文件_单片机学习day8—单片机IO扩展

    74HC165芯片-并转串 74HC165中文资料.pdf 267.6K · 百度网盘 8位移位寄存器(并行输入,互补串行输出) 时钟输入端 CLK,CLK INK (上升沿有效) A-H 并行数据输 ...

  9. c++ string 头文件_“延期不延学” 第25期 | C++篇 | C/C++常用函数

    在c/c++的课程和课设中,函数的应用都是至关重要的,这里就为大家收集整理了c/c++常用的一些函数,希望大家多加应用以熟练. 1.字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和 ...

最新文章

  1. ccs怎么把2个变量都在一个graph中显示_因果推理实战(2)——利用Tetrad进行因果分析...
  2. springCloud入门学习(七):通过属性自定义Ribbon配置
  3. css中调整高度充满_CSS(十三).高度如何铺满全屏
  4. docker 容器重命名
  5. C语言求在算术级数中找到缺少的数字(附完整源码)
  6. node、npm、vue安装 -- VUE 项目 demo 实例
  7. sql server datetime取年月_快速定位数据库性能问题,RDS推出慢SQL统计分析
  8. 【codevs1869】硬币购物,背包+神奇的容斥原理
  9. 基于高程的地面点云信息提取
  10. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第3节 maven标准目录结构和常用命令_06maven标准目录结构...
  11. win11系统下安装java 8的教程
  12. 硬件木马检测方法概述
  13. 快速玩转ECS竞价实例
  14. html网页右侧悬浮代码,html悬浮窗口代码
  15. OSAL 之功耗管理
  16. 优雅简洁的通用排版利器:MarkDown(支持公众号、知乎等场景渲染)
  17. 如何取消shutdown关机命令?-shutdown命令的使用解析
  18. 大学生必须掌握的计算机软件基础
  19. Unity游戏开发:文字冒险游戏项目实战
  20. 读曾鸣的《智能商业》有感

热门文章

  1. python 打包exe thread报错_pyinstaller 打包exe 遇到的坑
  2. Android开发之ApiCloud模块开发的注意事项
  3. 关于Google插件Postman的使用方法
  4. 微软公司部署小型数据中心网络连接产品
  5. 工作者对象HttpWorkerRequest
  6. Entity Framework 6 Recipes 2nd Edition(10-3)译 - 返回结果是一个标量值
  7. drupal启动过程
  8. Android语音录入与邮件发送
  9. 设计模式系列之单例模式(java)
  10. Java元数据区的概念_java之元数据(metadata)-Go语言中文社区