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

  • 相关阅读:
    基于linux、c的倒排索引
    关于A类,B类,C类IP地址的网段和主机数的计算方法
    如何找出字典中的兄弟单词
    简单验证码识别程序(源码)
    (一)SVM的八股简介
    验证码识别程序
    倒排索引
    验证码识别技术 Captcha Decode Technology
    字符串的组合
    C# 中panel的mousewheel事件触发 (转)
  • 原文地址:https://www.cnblogs.com/define-ray/p/5393215.html
Copyright © 2011-2022 走看看