📅  最后修改于: 2023-12-03 15:36:46.489000             🧑  作者: Mango
C++ 是一门常用的编程语言,被广泛应用于开发桌面应用程序、图形界面、嵌入式系统和游戏开发等领域。除了其实用性,C++ 还拥有许多有趣的特点,以下是一些我们可能不知道的 C++ 知识点。
C++ 的创始人是 Bjarne Stroustrup,他于 1979 年开始开发 C++ 以解决 C 语言难以处理的问题。出于 C++ 的历史原因,它包含了大量的 C 语言元素并引入了许多新特性和语法糖。
命名空间是一个将标识符封装起来的机制,以避免命名冲突,C++ 中的命名空间可以嵌套。嵌套的命名空间可以解决具有相似名称的标识符之间的命名冲突问题。
namespace A {
int i;
namespace B {
int i;
void f() {
int i = 0;
printf("%d, %d, %d\n", A::i, B::i, i);
}
}
}
在 C++ 中,我们可以为函数的参数指定默认值。默认参数值通常存储在函数声明中,但不存储在函数定义中。有了默认参数值,代码变得更加简洁,方便用户使用。
void foo(int a, int b = 0, int c = 0) {
// ...
}
int main() {
foo(1); // 等价于 foo(1, 0, 0);
foo(2, 3); // 等价于 foo(2, 3, 0);
foo(4, 5, 6);
return 0;
}
在 C++ 中,引用不是空间,而是一个别名。引用的作用是让编译器使用一个变量的别名来代表它,这样我们就可以方便地使用该变量。
int a = 10;
int &b = a;
b = 20;
printf("%d, %d", a, b); // 输出20, 20
在 C++ 中,数组可以被解释为指向第一个元素的指针。因此,在数组上应用指针运算和数组运算通常是等价的。
int arr[] = {1, 2, 3};
int *p = arr;
printf("%d, %d", *p, arr[0]); // 输出1, 1