- 域操作符: C++ 支持通过域操作符访问全局变量,C不支持(识别为重定义)
- ++i和i++的效率分析:
- 内置类型,无区别
- 自定义数据类型,++i可以返回引用,i++只能返回对象值(拷贝开销)
- 浮点数与0的判断
- if(x >= -epsinon || x <= epsinon)
- 不借用中间变量的swap实现。
- 借助和
- 借助异或(相同为0,不同为1)
// 借助和 void swap(int& a, int &b) { a = a + b; b = a - b; a = a - b; } // 借助异或 void swap(int& a, int& b) { a = a^b; b = a^b; a = a^b; }
- C和C++区别
- C实现了C++中过程化控制和其他功能。
- C++中的C部分引入了重载,内联函数和异常处理。C++加入了面向对象设计的内容,如类、继承、封装、虚函数、模板、包容器类等。
- 注意:C++拥有面向对象特性,但不是真正面向对象化的(java)。
- extern "C"
- 使用C库内声明的变量和函数。编译阶段只需要头文件,链接时寻找匹配的定义。
- 说明内部变量或函数是按照C的标准编译、链接,解决名字匹配问题。