C/C++共113篇

面试题:C++ 中 volatile 关键字的作用?

在 C++ 中,volatile 关键字用于告诉编译器,被修饰的变量可能会被程序以外的因素(如硬件、多线程、信号处理等)修改,因此编译器不应对该变量进行优化(如缓存到寄存器或重排序访问顺序)。 1...
程序百科的头像-程序百科程序百科37天前
04110

面试题:C++ 的有栈协程和无栈协程有什么区别?

在 C++ 中,协程(Coroutine)是一种轻量级的并发编程工具,可以分为有栈协程(Stackful Coroutine)和无栈协程(Stackless Coroutine)。它们的主要区别在于栈的管理方式和实现机制。 1. 有栈...
程序百科的头像-程序百科程序百科36天前
04115

面试题:请介绍 C++ 中 weak_ptr 的原理?

std::weak_ptr 是 C++ 标准库中的一种智能指针,用于解决 std::shared_ptr 的循环引用问题。它本身不拥有对象的所有权,而是通过观察 std::shared_ptr 来访问资源。理...
程序百科的头像-程序百科程序百科35天前
0409

面试题:C++ 中 move 有什么作用?它的原理是什么?

在 C++ 中,std::move 是一个用于实现移动语义的关键工具。它的作用是将对象的资源所有权从一个对象转移到另一个对象,从而避免不必要的拷贝操作,提高性能。以下是 std::move ...
程序百科的头像-程序百科程序百科37天前
04013

面试题:请介绍 C++ 中 future、promise、packaged_task、async 的区别?

在 C++ 中,std::future、std::promise、std::packaged_task 和 std::async 是用于异步编程的工具,它们共同构成了 C++11 引入的并发编程模型。以下是它们的区别和用途: 1.&nbs...
程序百科的头像-程序百科程序百科36天前
0406

面试题:C++ 的迭代器和指针有什么区别?

C++ 中的迭代器(Iterator)和指针(Pointer)在某些方面非常相似,但它们的设计目的和使用场景有所不同。以下是它们的区别: 1. 设计目的 指针: 指针是 C/C++ 中的一种原生数据类型,用...
程序百科的头像-程序百科程序百科36天前
04014

面试题:介绍下 socket 的多路复用?epoll 有哪些优点?

Socket 的多路复用 多路复用(Multiplexing)是一种允许单个线程同时监控多个文件描述符(如 Socket)的技术。通过多路复用,程序可以在一个线程中高效地处理多个 I/O 操作,而不需要为每个连接...
程序百科的头像-程序百科程序百科36天前
03914

面试题:什么是大端序?什么是小端序?

大端序(Big Endian) 和 小端序(Little Endian) 是两种不同的字节序(Byte Order),用于描述多字节数据(如整数、浮点数)在内存中的存储方式。它们的区别在于字节的排列顺...
程序百科的头像-程序百科程序百科37天前
0395

面试题:C++ new操作的背后都经历了什么?

在C++中,new操作符用于动态分配内存并构造对象。它的背后经历了一系列步骤,包括内存分配、对象构造以及可能的异常处理。以下是new操作的详细过程: 1. 内存分配 new操作符首先调用operator ne...
程序百科的头像-程序百科程序百科46天前
03915

面试题:什么是多态?简单介绍下 C++ 的多态?

多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许不同的对象对同一消息作出不同的响应。在 C++ 中,多态主要通过虚函数(Virtual Function)和继承机制实现。 1. 多态的基本概...
程序百科的头像-程序百科程序百科37天前
03915