C++高频考点(一)

1、野指针和悬挂指针


野指针是指没有初始化的指针;悬挂指针是指指向的内存已经被释放的指针。野指针和悬挂指针都是指向不安全不可控的内存,如果操作该指针会发生意想不到的结果。

如何避免?

  • 定义指针要初始化
  • 释放指针后赋值NULL
  • 使用智能指针

2、NULL和nullptr区别


  • NULL不是关键字,它是宏。
#define NULL 0 
或
#define NULL (void*)0
  • nullptr是nullptr_t的一个实例。

注意:NULL在C++中表示空指针时具有二义性问题

在C语言中用NULL表示空指针,使用(void *)0赋值会隐式类型转换为对应的指针类型。在C++中不能把(void *)0隐式转换成其它类型,所以NULL只能用0表示空指针,但在函数重载时会出现二义性问题。最终C++11引入nullptr来解决这个问题。

3、智能指针


  • C++11把C++98中的auto_ptr废除,引入shared_ptr、unique_ptr、weak_ptr智能指针。底层采用引用计数。
  • shared_ptr:shared_ptr指向的堆内存允许与其它shared_ptr使用。
  • unique_ptr:unique_ptr指向的堆内存不允许与其它unique_ptr使用。
  • weak_ptr:weak_ptr不能单独使用,只能和shared_ptr搭配使用。借助weak_ptr可以获取shared_ptr指向内存的状态信息,不影响引用计数,不能修改内存的值。

4、如何在main函数之前调用函数


  • 全局变量的构造函数。
  • 全局变量的赋值函数。
  • 指定入口点,入口点中调用main。
  • 如果是c语言,可以用__attribut__ ((constructor))指定函数在main前调用,attribut ((destructor))指定函数在main后调用。

5

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式软件面试笔记 文章被收录于专栏

该笔记涵盖嵌入式软件工程师技术面试中的知识点,归纳总结为:C/C++、操作系统、计算机网络、数据结构与算法、linux常用命令等章节。

全部评论
已订阅,期待更新
点赞 回复 分享
发布于 2023-02-06 16:16 广东

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结: 27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
10
35
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务