C++说爱你不容易面试题-2

常考面试题

  1. 说说const和define的区别⭐⭐⭐⭐⭐

    const用于定义常量;而define用于定义宏,而宏也可以用于定义常量。都用于常量定义时,它们的区别有:

    1. const生效于编译的阶段;define生效于预处理阶段。
    2. const定义的常量,在C语言中是存储在内存中、需要额外的内存空间的;define定义的常量,运行时是直接的操作数,并不会存放在内存中。
    3. const定义的常量是带类型的;define定义的常量不带类型。因此define定义的常量不利于类型检查。
  2. 说说const的作用⭐⭐⭐⭐⭐

    1. const修饰普通类型的变量,告诉编译器某值是保持不变的。

    2. const 修饰指针变量,根据const出现的位置和出现的次数分为三种

      1. 指向常量的指针:指针指向一个常量对象,目的是防止使用该指针来修改指向的值。

      2. 常指针:将指针本身声明为常量,这样可以防止改变指针指向的位置。

      3. 指向常量的常指针:一个常量指针指向一个常量对象

    3. const修饰参数传递,可以分为三种情况。

      1. 值传递的 const 修饰传递,一般这种情况不需要 const 修饰
      2. 当 const 参数为指针时,可以防止指针被意外篡改。
      3. 自定义类型的参数传递,需要临时对象复制参数,对于临时对象的构造,需要调用构造函数,比较浪费时间,因此我们采取 const 外加引用传递的方法。
    4. const修饰函数返回值,分三种情况。

      1. const 修饰内置类型的返回值,修饰与不修饰返回值作用一样。
      2. const 修饰自定义类型的作为返回值,此时返回的值不能作为左值使用,既不能被赋值,也不能被修改。
      3. const 修饰返回的指针或者引用,是否返回一个指向 const 的指针,取决于我们想让用户干什么。
    5. const修饰成员函数

      const 修饰类成员函数,其目的是防止成员函数修改被调用对象的值,如果我们不想修改一个调用对象的值,所有的成员函数都应当声明为 const 成员函数。

  3. const修饰函数的三个位置⭐⭐⭐⭐⭐

    //修饰返回值
    const int func(void);
    //修饰参数,说明不希望参数在函数体内被修改
    int func(const int i);
    //修饰成员函数,其目的是防止成员函数修改被调用对象的值
    int func(void) const;
  4. 说说const int *a, int const *a, const int a, int *const a, const int *const a分别是什么,有什么特点。⭐⭐⭐⭐⭐

    1. const int a;          

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

<p> - 本专刊适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专刊适合于互联网C++软件开发、嵌入式软件求职的学生或人士。 - 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构等一系列知识点的讲解,并且最后总结出了高频面试考点(附有答案)共近400道,知识点讲解全面。不仅如此,教程还讲解了简历制作、笔试面试准备、面试技巧等内容。 </p> <p> <br /> </p>

全部评论
全局静态变量和局部静态变量的作用域不一样
点赞
送花
回复
分享
发布于 2022-03-10 09:25

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务