C++ 冷知识汇总

基础语法相关

  • const 的特性:const 用于声明在运行过程中不能被修改的对象或变量,常对象只能调用常成员,常成员函数只能调用而非修改常成员对象。例如:
​
class MyClass { 
public: 
    void Print() { 
        std::cout << "普通对象" << std::endl; 
    } 
    void Print() const { 
        std::cout << "常对象" << std::endl; 
    } 
}; 
const MyClass a; 
a.Print(); // 输出: 常对象 

​

这样设计可以增强程序的安全性,避免误修改数据13

  • 友元函数:友元函数在类内声明,在类外定义,所以可以在类外访问类的成员。这打破了类的封装性,在某些特殊场景下可以方便操作类的私有成员13
  • 数组下标可为负数:在 C 语言(C++ 兼容 C 语言特性)中,数组的下标可以是负数。不过使用负数下标时要确保不越界,以免引发不可预知的错误。这种设计在某些情况下会让代码更加简洁、灵活2
  • 数组名可放括号中:C 语言中数组名本身也可以放在括号中,产生与数组名相同效果。在函数传参时,将数组名放在括号中传递数组,无需退化为指针,可保留数组的维度信息2
  • sizeof 是运算符:sizeof 其实是一个运算符,而不仅仅是一个关键字。它用于计算对象的大小,返回一个 size_t 类型的值,不仅可以用于数据类型,还可以用于表达式2
  • 空格的作用:在 C 语言中,空格通常用于分隔不同的符号,使代码更易读。并且一些运算符也允许在其内部插入空格,而不会影响编译器的解析2

表达式计算相关

  • 表达式计算方向:printf 和 cin 是从右往左计算,其他表达式从左往右计算,比如逗号表达式,但是逗号表达式返回值是最右边的值。逗号运算符优先级最低,所以使用时要加括号。例如:
int b[5] = {1, 2, 3, 4, 5}; 
int* p = b; 
printf("%d, %d\n", *(p), *(++p)); // 输出 2, 2 
int i = 1; 
int a = (2, i = 3, i); 

数据类型相关

  • 枚举类型:枚举类型是 unsigned int 型常量的集合,其中的常量称为枚举数12

其他

  • 分支预测:分支预测是现代处理器用来加速指令流水线的技术。现代处理器会尝试预测哪个分支最可能被执行,并提前加载相关指令。如果预测正确,处理器就避免了等待,从而大幅提高了执行速度;相反,如果预测失败,处理器则需要撤销错误的指令执行结果,从正确的分支重新开始,这一过程会导致显著的性能损失3

以上就是c++的一些冷知识,望大家采纳~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值