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