C/C++面试必知:关键知识点解析

需积分: 9 0 下载量 19 浏览量 更新于2024-09-10 收藏 6KB TXT 举报
"这篇文章主要涵盖了C与C++面试中常见的知识点,包括字符编码、运算符优先级、const和static的用法、sizeof操作符、数组和指针的关系、浮点数处理、常量指针与指针常量、初始化数组、字符串处理、C到C++的转换以及const成员函数的使用等。" 1. 字符编码:在C语言中,`char c='\72';`表示将字符变量c赋值为ASCII码为72的字符,即大写字母'H'。 2. 运算符优先级:`10 * a++`遵循先乘除后加减的规则,但`a++`是后置自增运算符,这意味着先使用a的当前值进行乘法运算,然后a的值才增加1。 3. const和static的使用: - `const`修饰的变量是只读的,不能被修改。 - `static`修饰的变量在函数内部定义时,生命周期贯穿整个程序运行,对于局部变量,每次调用函数时其值会保留。 - `const static`结合使用时,变量在编译时被初始化且不可更改,常用于全局或静态常量。 4. sizeof操作符:用于获取数据类型或表达式的大小,如`sizeof(int)`返回int类型的大小,通常为4个字节(32位系统)。 5. 数组与指针的关系: - 指针可以用来访问数组元素,如`int i=0;`,`sizeof(int)`返回5是因为在32位系统中,int通常是4字节,因此sizeof(int)是4,但这里可能是指数组的大小。 - 指针运算符`&`和解引用`*`在数组上下文中可以用来获取或修改数组元素。 6. 临时对象与常量对象:临时对象的生命周期短暂,常量对象一旦初始化后就不能修改。 7. 浮点数处理:使用`modf`函数可以将浮点数分解为整数部分和小数部分,如`double modf(double num, double *i);`,`num`的整数部分会被赋值到`*i`。 8. const指针与指针常量:const可以修饰指针的值(指针指向的数据)或指针本身,分别表示指针内容不可变和指针地址不可变。 9. 数组初始化:`int a[10]={1,2,3,4,5,6,7,8,9,10};`定义了一个包含10个元素的数组,初始值分别为1到10。`int *p=&(a+1)[3];`指向数组中的第4个元素(下标为3),输出为5。 10. 字符串处理:字符串常量如`"0011"`存储在程序的只读数据段,而`str1~str8`如果未指定初始值,它们会根据分配的内存空间大小自动填充为0。 11. C到C++的转换: - C++支持类和对象,而C没有。 - C++有访问控制(public, protected, private),C只有全局和局部。 - C++允许函数重载和运算符重载,C不支持。 - C++引入了构造函数和析构函数,C中没有。 - C++支持成员函数的const限定,C中没有。 12. const成员函数:在C++中,const成员函数用于在对象被声明为const时仍能调用,确保不修改对象状态。 13. mutable关键字:在const成员函数中,可以使用`mutable`关键字使某个成员变量在const上下文中可变。 这些是C和C++面试中常见的技术点,掌握它们有助于提升面试表现。