C/C++共113篇

面试题:C++ 中如何使用线程局部存储?它的原理是什么?

在 C++ 中,线程局部存储(Thread Local Storage, TLS) 是一种机制,允许每个线程拥有自己的变量实例,即使这些变量在代码中看起来是全局或静态的。线程局部存储的原理和用法如下: 1.&nb...
程序百科的头像-程序百科程序百科36天前
03414

面试题:什么是 C++ 的函数重载?它的优点是什么?和重写有什么区别?

在 C++ 中,函数重载(Function Overloading)是一种允许在同一作用域内定义多个同名函数,但这些函数的参数列表必须不同的特性。通过函数重载,可以使用相同的函数名来实现不同的功能,从而提...
程序百科的头像-程序百科程序百科37天前
03415

面试题:C++ 中可以使用 delete this 吗?

是的,在 C++ 中可以使用 delete this,但需要非常小心,因为它是一种高风险的操作。delete this 的核心思想是对象在成员函数中自我销毁。虽然这种技术在某些特定场景下有用,但必须遵循严格的...
程序百科的头像-程序百科程序百科37天前
03410

面试题:C++ 中为什么要使用 nullptr 而不是 NULL?

在C++中,nullptr 是C++11引入的关键字,用于表示空指针。与传统的 NULL 相比,nullptr 具有以下优势: 1. 类型安全 NULL 的问题: 在C++中,NULL 通常被定义为 0...
程序百科的头像-程序百科程序百科37天前
0345

面试题:C++ 中 thread 的 join 和 detach 的区别?

在 C++ 中,std::thread 提供了两种管理线程生命周期的方式:join() 和 detach()。它们的核心区别在于线程的执行与主线程的关系以及资源的释放方式。 1. join() 功能: 阻...
程序百科的头像-程序百科程序百科37天前
0347

面试题:C++ 的 string 内部使用的是堆内存还是栈内存?

在 C++ 中,std::string 的内部实现通常使用堆内存来存储字符串数据。这是因为字符串的长度通常是动态变化的,栈内存的大小有限且不适合存储可能很大的动态数据。 具体说明: 栈内存:栈内存用...
程序百科的头像-程序百科程序百科35天前
03413

面试题:C++ 的 strcpy 和 memcpy 有什么区别?

在C++中,strcpy 和 memcpy 是两个常用的函数,用于复制数据。尽管它们的功能相似,但在使用场景和行为上有显著的区别。 1. strcpy 定义:strcpy 是用于复制字符串的函数...
程序百科的头像-程序百科程序百科37天前
03215

面试题:C++ 是否可以 include 源文件?

在C++中,可以使用 #include 包含源文件(.cpp 文件),但不推荐这样做。以下是详细解释: 1. 为什么可以包含源文件? #include 是一个预处理指令,它的作用是将指定文件...
程序百科的头像-程序百科程序百科37天前
0327

面试题:C++ 中 jthread 和 thread 的区别?

在 C++20 中引入了 std::jthread,它是 std::thread 的增强版本,主要区别在于 std::jthread 提供了更安全和更方便的线程管理功能,特别是自动线程回收和协作中断支持...
程序百科的头像-程序百科程序百科37天前
03210

面试题:C++ 的栈溢出是什么?

栈溢出(Stack Overflow) 是程序运行时的一种错误,发生在调用栈(Call Stack)的内存空间被耗尽时。栈是用于存储函数调用信息(如局部变量、返回地址等)的内存区域,其大小是有限的。当程序...
程序百科的头像-程序百科程序百科37天前
03210