zoukankan      html  css  js  c++  java
  • c++面试(二)

    1.宏参数的连接

    #define CONS(a,b) (int)(a##e##b)

    CONS(2,3) =>2e3 =2000

    2.const

    int b=10;

    int c=20;

    const int *a1=&b;    //指针指向常量,修改指针可以a1=&c(对),但是修改指向的内容不行*a1=1(错)。

    int* const a2=&b;    //指针本身为常量。a2=&c(错),*a2=1(对)。

    const int* const a3=&b;    //双const:指针本身不能改,只想内容不能改。

    3.#define:    Compile-Time    止于编译期

         const:     Run-Time          在堆栈只分配了空间

    4.const的作用

    (1)定义常量。

    (2)修饰函数形参。

    形参为用户自定义或抽象数据类型时,应该把“值传递”改为“const &传递”,提高效率。

    void fun(A a)

    void fun(A const &a)    //不需要产生临时对象,节省了构造、复制、析构过程的时间。但光引用可能会改变a,所以加上const。

    (3)const修饰函数的返回值:

    如给“指针传递”的函数返回值+const,返回值不能被直接修改,且只能赋给+const修饰的同类型指针。

    (4)const修饰类的成员函数(定义体)

    int GetCount(void) const;

    任何不会修改数据成员的函数都应+const。

    5.static有什么作用

    (1)函数体内,静态变量调用过程其值不变。

    (2)在模块内(函数体外),静态变量可以被模块内所有函数访问,但不能被模块外其他函数访问。    它是一个本地的全局变量。

    (3)在模块内,一个被声明为静态的函数值可被这一模块内的其他函数调用。

  • 相关阅读:
    git 从远程仓库指定分支克隆代码到本地
    vue路由懒加载
    ES6中拓展运算符 ...
    Mysql 安装-windows X64
    mysql-Federated存储方式,远程表,相当于sql server的linked server
    优化临时表使用,SQL语句性能提升100倍
    MySQL行锁深入研究
    mysql 队列 实现并发读
    mysql 常用sql
    mysql分表的3种方法
  • 原文地址:https://www.cnblogs.com/define-ray/p/5393215.html
Copyright © 2011-2022 走看看