找到 7345 篇文章 关于 C++

为什么在 C++ 中访问数组越界不会报错?

Rishi Rathor
更新于 2019-07-30 22:30:22

2K+ 次浏览

这是因为 C++ 不进行边界检查。像 Java 和 Python 这样的语言具有边界检查,因此如果您尝试访问越界元素,它们会抛出错误。C++ 的设计原则是不应该比等效的 C 代码慢,而 C 不会进行数组边界检查。因此,如果您尝试访问此越界内存,则程序的行为是未定义的,这在 C++ 标准中有所规定。通常,每当遇到未定义行为时,任何事情都可能发生。应用程序可能会崩溃,可能会冻结,它可能会…… 阅读更多

在 C++ 标准中,int 和 long 类型的大小是多少?

Chandu yadav
更新于 2020-06-24 06:05:04

313 次浏览

C++ 标准没有指定整型类型的大小(以字节为单位)。它指定了这些类型必须能够容纳的最小范围。位数大小可以很容易地从指定的最小范围中找到。不参考标准,但各种平台常用的尺寸为:对于 32 位系统,标准是 ILP32——即 int、long 和指针都是 32 位量。对于 64 位系统,Unix 标准是 LP64——long 和指针是 64 位(但 int 是 32 位)。Windows 64 位标准是 LLP64——long 和指针是 64 位(但 long 和…… 阅读更多

C++ 中的聚合体和 POD 是什么?

George John
更新于 2020-02-11 12:49:57

573 次浏览

POD 是 C++ 中的首字母缩略词,表示普通旧数据 (plain old data)。它是一个类/结构体,只有成员变量,没有方法、构造函数、析构函数、虚函数等。例如,示例 #include using namespace std; // POD struct MyStruct {    int key;    string data; }; int main() {    struct MyStruct s;    s.key = 1;    s.data = "hello";    return 0; } 结构体 MyStruct 没有用户定义的构造函数、析构函数等,因此是 POD。聚合体是数组或类,没有用户声明的构造函数,没有私有或受保护的非静态数据成员,没有基…… 阅读更多

C++11 中的 lambda 表达式是什么?

V Jyothi
更新于 2020-06-24 06:06:07

328 次浏览

C++ STL 包含有用的泛型函数,如 std::for_each。不幸的是,它们也可能非常难以使用,特别是如果您想要应用的函子对于特定函数是唯一的。因此,您将创建的此函数将位于该命名空间中,仅在该一个地方使用。解决方法是使用匿名函数。C++ 在 C++11 中引入了 lambda 表达式以允许创建匿名函数。示例 #include #include #include // for_each using namespace std; int main() {    vector myvector;    myvector.push_back(1);    myvector.push_back(2);    myvector.push_back(3);    for_each(myvector.begin(), myvector.end(), [](int x) {    …… 阅读更多

为什么在 C++ 代码中使用 extern "C"?

Priya Pallavi
更新于 2019-07-30 22:30:22

1K+ 次浏览

当声明在 C 中实现/编译的函数时,需要在 C++ 中使用 extern "C"。使用 extern "C" 让编译器知道我们想要使用 C 命名和调用约定。这会导致编译器在我们的 C++ 代码内部进入 C 模式。这是必需的,因为 C++ 编译器在它们的符号表中对名称的处理方式与 C 编译器不同,因此行为也与 C 编译器不同。

C++ 中的 POD 类型是什么?

Arjun Thakur
更新于 2020-03-02 07:55:47

1K+ 次浏览

POD 是 C++ 中的首字母缩略词,表示普通旧数据 (plain old data)。它是一个类/结构体,只有成员变量,没有方法、构造函数、析构函数、虚函数等。例如,示例 #include using namespace std; // POD struct MyStruct {     int key;     string data; }; int main() {     struct MyStruct s;     s.key = 1;     s.data = "hello";     return 0; } 结构体 MyStruct 没有用户定义的构造函数、析构函数等,因此是 POD。

C++11 概述

George John
更新于 2020-06-24 05:45:04

925 次浏览

C++11 是 2011 年发布的现代 C++ 标准。这为现有语言带来了许多重大扩展和改进。它于 2011 年 8 月 12 日获得国际标准化组织 (ISO) 批准,并取代了 C++03。C++11 也被称为 C++0x。这是因为,对于下一个修订版,预计下一个标准将在 2008 年完成,但由于不确定,它被命名为 C++0x,其中 x 代表 8 或 9。虽然计划有所改变,但现在称为 C++11。因此,C++0x 是该标准在发布之前的名称。…… 阅读更多

C++11 中最大的变化

Nikitha N
更新于 2020-06-24 05:56:48

175 次浏览

C++11 是 2011 年发布的现代 C++ 标准。这为现有语言带来了许多重大扩展和改进。以下是 C++11 的主要更改/添加:初始化列表自动类型推导右值引用和移动构造函数constexpr - 广义常量表达式对普通旧数据的定义进行修改基于范围的 for 循环lambda 函数和表达式替代函数语法显式覆盖和 final常量空指针,nullptr强类型枚举右尖括号不在适当的地方被视为运算符可变参数模板多线程内存模型将哈希表添加到 STL将正则表达式添加到标准库添加了通用智能指针,如 shared_ptr、weak_ptr 等还有更多。您可以获得…… 阅读更多

GCC 中的 C++ 标准支持

Vrundesha Joshi
更新于 2020-02-11 12:54:12

1K+ 次浏览

GCC 支持不同的 C++ 方言,对应于多个已发布的 ISO 标准。可以使用 -std= 命令行选项选择它实现的标准。C++98 - GCC 完全支持 1998 年的 C++ 标准,该标准在 2003 年进行了修改并更名为 C++03,以及一些后来的缺陷报告。C++11 - GCC 4.8.1 是 2011 年 C++ 标准(以前称为 C++0x)的第一个完整实现。C++14 - GCC 完全支持 2014 年发布的最新版本的 C++ 标准。C++17 - GCC 对 C++ 标准的下一个修订版(预计…… 阅读更多

C++0x 与 C 兼容吗?

Srinivas Gorla
更新于 2019-07-30 22:30:22

108 次浏览

C++(98)和新标准(C++0x 或 C++11)都不完全与 C 兼容。C++ 从未完全与 C 兼容。

广告
© . All rights reserved.