字节跳动 C++面经总结第四期

本文整理了字节跳动C++面试中的重点问题,包括数组指针与指针数组的差异、C++多态类型、构造与析构的顺序、进程间通信方式、同步与异步概念、网络协议层次结构、快速排序及其优化、TCP与UDP的区别,以及寻找数组中元素和为目标值的组合数量的编程题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.我们的公众号:扶摇就业,欢迎前往,更多面经内推,祝您早日拿到offer奥~

1.​数组指针和指针数组区别

数组指针只是一个指针变量,是C 语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

2.C++多态有哪几种?

多态:父类型的引用指向子类型的对象
静态多态(函数重载和运算符重载),是在编译的时候,就确定调用函数的类型;
动态多态(虚函数实现),在运行的时候,才能确定调用的是哪个函数,动态绑定。运行基类指针指向派生类的对象,并调用派生类的函数。

3.C++析构和构造的顺序,为什么析构函数最好是虚函数

1)构造函数顺序:先基类、再数据成员中是类对象的构造函数、最后派生类构造函数的函数体
2)析构函数顺序:与构造函数相反
​3)析构函数最好是虚函数:若派生类有一个指向动态内存分配的数据成员,而又将基类的指针指向派生类对象,同时基类的析构函数又不是虚函数的话,编译器就实施静态绑定,释放基类指针所指对象的空间时候只执行基类的析构函数,不执行派生类的析构函数,那派生类动态分配的数据成员所申请的空间就不能被释放,这就造成了内存泄漏。

4.进程间的通信方式

1)管道:半双工通信方式、数据单向流动、只能在父子进程间使用
2)命名管道:半双工,允许无亲缘关系进程间的通信
3)信号量:计数器,控制多个进程对共享资源的访问
4)共享内存:映射一段能被其他进程所访问的内存
5)消息队列:消息的链表,存放在内核中并由消息队列标识符标识
6)套接字:不同设备间的进程通信
7)全双工管道

5.同步和异步的概念

所谓同步,就是发出一个功能调用时,在没有得到结果之前,该
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值