c++面试题(2)

1、请说说const与#define有何区别?

基于这个问题,我们先分别解释一下const和define。

首先是const。

const 就是告诉编译器某个值不变,可能不严谨,姑且这么理解。

看看const用法有哪些:

a、const修饰成员变量。

    

   一旦使用const修饰,就是一个常量,值无法进行更改。

b、修饰函数参数。

传递过来的参数在函数内不可以改变,与上面修饰变量时的性质一样。

  

同样和a情况一样。

还有很多用法,在这里不一一列出,需要的具体再去查查。

再来说说#define。

      #define是宏定义,宏定义有两种:

    a、#define  宏名   字符串

         例如:#define  pi  3.14159

    b、#define <宏名> (<参数表>)  <宏体>
        例: #define A(x) x

          在这里需要注意的是参数表需要接上();

再来回答一下:const与#define的区别。

从起作用的阶段而言:#define是在预处理阶段起作用,而const是在编译和运行的时候起作用。

从方式而言,#define只是进行替换作用,没有类型检测。而const是需要进行类型检查的。

猜你喜欢

转载自blog.csdn.net/qq_34062754/article/details/86608818
今日推荐