自己整理的C++面试题

本文原载于我的博客:https://www.seekingmini.top/archives/自己整理的c面试题

0. 写在前面

大三找实习,也算是面试了不少公司了,凭着记忆整理了一些当时被问到的题目以及自己觉得比较常见的问题。

1. const的作用

(1) 修饰变量
const int a = 3;    // a是常量,值不可改变
(2) 修饰指针
  • 指向常量的指针
const int a = 3;    // a是整型常量
const int *p = &a;  // p是指向整型常量的指针

怎么理解指向常量的指针?我们可以这样认为:int是一种数据类型,那么const int也是一种数据类型,那么就会有指向const int这种类型的指针,即const int*

  • 自身是常量的指针
int a = 3;          
int* const q = &a;  // q是一根常量指针(这意味着q只能指向a)
int b = 4;
*p = 4;             // 这是合法的,因为p仍然指向a,而我们只是改变a的值而已
p = &b;             // 这是不合法的,因为改变了p指向的对象

时刻记住:如果const出现在*左边,表示被指对象是常量;如果出现在*右边,表示指针自身是常量;如果出现在*两边,表示被指对象和指针两者都是常量。

(3) 修饰引用
int a = 3;
void func(const int &a);

函数func的参数a前加入const既可以避免拷贝,又可以防止对a的修改。

(4) 修饰成员函数

说明该成员函数内不能修改成员变量。

2. static的作用

(1) 修饰普通变量

修改变量的存储区域和生命周期,使变量存储在静态区,在主函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。

(2) 修饰普通函数

表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命名空间里的函数重名,可以用static修饰函数。

(3) 修饰成员变量

使所有的对象只保存一个该变量,而且不需要生成对象就可以访问该成员。static修饰的变量先于对象存在,所以static修饰的变量要在类外初始化。

class Person {
   
private:
    int age;
    string name;
public:
    static int num;  // 表示实例化的对象数
    Person(int a, string n) {
   num++; this->age = a; this->name &#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值