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)在模块内,一个被声明为静态的函数值可被这一模块内的其他函数调用。

  • 相关阅读:
    java集合 stream 相关用法(1)
    ICE新手入门版
    spring中关于FeignClient的错误 QueryParam.value() was empty on parameter 1
    Java Base64解析
    Java RSA加密以及验签
    项目拆分子工程(简单版)
    mysql "ON DUPLICATE KEY UPDATE" 的使用
    关于多定时任务开发
    AtomicInteger保证线程安全的全局变量
    C++矩阵库 Eigen 快速入门
  • 原文地址:https://www.cnblogs.com/define-ray/p/5393215.html
Copyright © 2011-2022 走看看