【面试论述】const的作用、使用举例与#define联系

原创 2016年05月30日 17:17:03

const的作用:

    a.使用习惯,若变量的值不会被修改,则在声明时就应当加上;

    b.该关键字可用来修饰变量,函数返回值,形式参数等等,表示不可修改;

    c.增加程序的健壮性。如,

char* strcpy(char* dest,const char* src)


const的使用:

int const a;

const int a;

    均表示整形变量a的值不可修改。


int const *pa;

    表示指针指向的值不可修改,而指针变量的值可以修改。


int *const pa;

    表示指针变量的值不可修改,而指向指针变量的值可以修改。


int const * const pa;

    第一个const修饰*pa,表示指向指针变量的值不可修改。

    而第二个const修饰pa,表示指针变量的值不可修改。


#define可以代替const,且比const更好。原因在于:

    #define只要是字面值常量均可以使用,而const仅仅能使用在有变量的地方。

    如声明数组长度:

#define MAXSIZE 1000
int arr[MAXSIZE] = {0};
int const maxsize= 1000;


本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1741791

const与#define的区别

const         const 是c++中的修饰符。  c++中常用来定义常量,修饰左值。#define       宏定义语句, 在编译阶段进行替换,不做类型检查。它们之间的最大区别:1. ...
  • zhuwanglove
  • zhuwanglove
  • 2010-09-25 15:27:00
  • 5791

C++面试题——const 和 static

虽说不太喜欢这种问语言特性的题目,但是国内好多公司貌似就喜欢问这个,还觉得问这个很高端,就把他们常问的一些东西写下来做个总结,有的东西还是有些意思的,有些东西其实都没个固定的答案。不出意外将会写一个系...
  • qq51931373
  • qq51931373
  • 2015-05-18 10:36:31
  • 805

const经典面试题

1> const int age1 = 21;      age1 = 100; // 编译报错   2> int const age2 = 22;   3> const int *...
  • meegomeego
  • meegomeego
  • 2015-08-19 12:04:18
  • 1748

const的用法及部分面试题解析

1、const修饰常量 C++中用const限定符将一个对象转化为一个常量,因为常量是不可以改变的,所以const修饰的变量在定义时必须初始化,否则将会出现错误。在全局范围内定义一个变量,一般是和定...
  • lishitao_578
  • lishitao_578
  • 2017-06-10 17:12:46
  • 263

#define和const struct 与 union的区别

1)#define 不仅可以替代常数值,也可以替代表达式值,甚至是代码段,只是在预处理阶段进行简单的文本替换,不分配内存空间,存在于程序的代码段,在实际应用中只是一个常数,并没有实际的存在。const...
  • qq_33774935
  • qq_33774935
  • 2016-08-31 10:57:53
  • 669

const总结大全,不断更新,面试必备

一.const类型的变量在声明的时候一定要进行初始化,否则会报错。 二.在全局作用域中定义非const对象,它在整个程序中都可以访问 例如: //file1.cc int counter;...
  • kingskyleader
  • kingskyleader
  • 2011-08-15 19:41:45
  • 1535

宏定义中是使用 const(static) 还是 使用 define

const 和 define 在开发中常用来定义常量,这样做的好处是:使代码更易维护、提高代码的效率。 1、const const是C/C++中的一个关键字(修饰符), const一般用来定义一个常...
  • potato512
  • potato512
  • 2016-05-19 15:42:50
  • 1357

为什么尽量以const,enum,inline替换#define?

为什么尽量以const,enum,inline替换#define? 1. 先了解下预处理器和编译器 从源代码到获取到可执行程序大致流程如下所示: Step1:源代码(source code)  Ste...
  • u012421852
  • u012421852
  • 2016-04-16 14:24:32
  • 432

C语言中 关于const和#define的区别心得

尽量用const和inline而不用#define 这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好像不是语言本身的一部分。这是问题之一。再看下面的语句: #defin...
  • wangjun_huster
  • wangjun_huster
  • 2017-04-09 14:44:03
  • 385

PHP定义常量是,const和define的区别

const可以在类中使用,define不行 const在类中定义类成员变量,已经定义不可更改。define只能定义全局常量,不能定义类成员变量 const只能用普通常量命名,define可以用表达式 ...
  • baidu_28678737
  • baidu_28678737
  • 2016-06-21 16:08:24
  • 561
收藏助手
不良信息举报
您举报文章:【面试论述】const的作用、使用举例与#define联系
举报原因:
原因补充:

(最多只允许输入30个字)