C++面试题


1. 问题:`volatile` 关键字的作用是什么?  
   答案:`volatile` 关键字用于指示编译器不应优化对变量的访问,适用于多线程或中断处理程序中的变量。

2. 问题:`static` 关键字的作用是什么?  
   答案:`static` 关键字用于保持变量在程序的生命周期内保持其值,或者限制变量的作用域。

3. 问题:`extern` 关键字的作用是什么?  
   答案:`extern` 关键字用于声明全局变量或函数,但不定义它们,可以在其他文件中使用。

4. 问题:`const` 关键字的作用是什么?  
   答案:`const` 关键字用于声明常量,防止其值被修改。

5. 问题:`const` 关键字适用于哪些情况?  
   答案:`const` 关键字适用于需要保护不被修改的数据。

6. 问题:`new/delete` 和 `malloc/free` 有什么区别?  
   答案:`new/delete` 用于动态内存分配和释放,并调用构造和析构函数,而 `malloc/free` 只是分配和释放内存。

7. 问题:`strlen("\0")` 和 `sizeof("\0")` 的值分别是多少?  
   答案:`strlen("\0")` 的值是0,因为它返回字符串的长度,不包括空字符。`sizeof("\0")` 的值是1,因为它返回字符串的大小,包括空字符。

8. 问题:结构体和联合体有什么区别?  
   答案:结构体的所有成员共享内存空间,而联合体的成员共享同一块内存空间。

9. 问题:左值和右值是什么?  
   答案:左值是可寻址的内存位置,右值是不可寻址的临时值。

10. 问题:什么是短路求值?  
    答案:短路求值是逻辑运算中的一种优化方式,只有在必要时才对右侧表达式进行求值。



30. 什么是++a和a++的区别?  
++a会先将a的值加1,然后返回增加后的值;而a++会先返回a的值,然后再将a的值加1。

31. #define和typedef的区别是什么?  
#define用于创建宏定义,而typedef用于为已有类型定义新的名称。

32. C语言是如何进行函数调用的?  
C语言进行函数调用时,会将函数参数压入栈中,然后跳转到函数的入口地址执行函数体。

33. C语言中内存分配的方式有哪些?  
C语言中内存分配的方式包括静态内存分配、栈内存分配和堆内存分配。

34. 堆和栈有什么区别?  
堆和栈的主要区别在于存储方式和生命周期,堆是动态分配的内存,生命周期由程序员管理;而栈是自动分配的内存,生命周期与函数调用相关。

35. 栈的用途是什么?  
栈用于存储局部变量、函数参数、函数调用信息等数据,以及用于函数调用的执行上下文。

36. 压栈的顺序是什么?  
压栈的顺序是先进后出(FILO),即最后压入栈的元素最先被弹出。

37. C++中的内存管理是如何实现的?  
C++中的内存管理通过new和delete操作符来动态分配和释放内存,以及使用智能指针来管理资源。

38. 什么是内存泄漏?  
内存泄漏指的是程序中分配的内存未被正确释放,导致程序运行时消耗的内存不断增加,最终可能导致系统资源耗尽。

39. 数组指针和指针数组有什么区别?  
数组指针是指指向数组的指针,而指针数组是指存储指针的数组。

40. 函数指针和指针函数有什么区别?  
函数指针是指指向函数的指针,而指针函数是指返回指针的函数。

41. 数组名和指针有什么区别?  
数组名是数组的地址,而指针是一个指向内存地址的变量。

42. 指针常量、常量指针、指向常量的常量指针分别是什么?  
指针常量是指指针本身是常量,指针所指向的值可以修改;常量指针是指指针所指向的值是常量,指针本身的值可以修改;指向常量的常量指针是指指针本身是常量,指针所指向的值也是常量。

43. 指针和引用有什么区别?  
指针是一个变量,存储的是一个地址;而引用是已定义变量的别名,与原变量共享存储空间。

44. 什么是野指针?  
野指针是指指向未知内存地址的指针,使用野指针可能导致程序崩溃或产生未定义行为。

45. C++中的智能指针是什么?  
C++中的智能指针是一种RAII(资源获取即初始化)的设计模式,用于管理动态分配的内存,可以自动释放所管理的资源,从而避免内存泄漏的发生。
全部评论

相关推荐

头像
本人bg:9本🕒 投递大概3.20左右二批刚开抱着图一乐的心情就投了,无科研竞赛经历,简历随便写的。投的是武汉总部(毕竟投着好玩的。不过这个不重要,后面会讲)4.8晚收到短信通知初筛已过,需要去官网确定是否参加笔试。确认之后过了几天发来短信会有个资格审查。🕒 笔试笔试好像就是在资格审查的后一天,应该是4.14下午吧。形式:机试时长:3h题型:选择题题量:160+范围:企业文化+行测+408+人工智能/云计算/软件工程相关内容里面的408比考研的简单很多,其他专业内容也一样,考得广也就浅了。笔试没咋准备,考完觉得一般。过了两天查成绩,不出所料60出头。4.17晚收到短信,确认是否参加面试。隔天做了个心理测试,订了个酒店。🕒 面试时间:4.21大清早前一天晚上就睡了一两个小时。当天早上排队,交手机进候考室,每个候考室大概十几个考生的样子。等。等的过程中跟候考室那个老师还蛮聊得来的,要不是叫到我去面试了肯定还能多聊会(笑面试我就只准备了个自我介绍。懂我意思吧进面试考场,坐到五个面试官(性别均为女,很奇怪)正对面,自己面前桌子上有草稿纸和面试题,题目大致内容如下:自我介绍1.意见箱xxxx[全是积极作用]如何看待意见箱?2.如何看待“小群体”现象?3.软件架构有哪些,了解软件架构有什么作用?先自我介绍,然后看题思考,最后把几个题一起回答,所有时间加起来好像是不超过15min吧,哦对旁边还有个计时员1.讲过来讲过去说它很好很好,期间还死亡沉默了好几次,🐔2.分正反两面答的,感觉还行3.不会,两句话结束,大🐔特🐔回答完之后正中间的主考官问:什么经历让你学到很多,学到了什么。只有主考官说话,其他四个全程司马脸面完感觉很差,直接回去补觉了。过了两天查分,再次60+。结果4.23晚上收到短信已预录取,待后续洽谈签约事项🕒 拒签5.6短信通知 5.8洽谈交手机进候考室,通知“综合考虑生源信息和岗位需求,填报志愿仅供参考”我湖北人,给我分到了我家那边(三四线城市)的市总部 问薪资说没有具体的一口价之类的,但在当地算比较有竞争力的已拒(我想赚大钱拒签形式:手写放弃声明+按手印完结 #湖北国家电网# #国家电网#
点赞 评论 收藏
转发
11 27 评论
分享
牛客网
牛客企业服务