被面试者只要能说出const意味着"只读"就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。如果应试者能正确回答这个问题,我将问他一个附加的问题:下面的声明都是什么意思?
Const只是一个修饰符,不管怎么样a仍然是一个int型的变量
本质:const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效
const int a;
int const a; //前两个的作用是一样,a是一个常整型数。
const int *a; //意味着a是一个指向常整型数的指针(也就是,指向的整型数是不可修改的,但指针可以,此最常见于函数的参数,当你只引用传进来指针所指向的值时应该加上const修饰符,程序中修改编译就不通过,可以减少程序的bug)。
int * const a; //意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。
int const * a const; //意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。
顺带提一句,也许你可能会问,即使不用关键字 ,也还是能很容易写出功能正确的程序,那么为什么还要如此看重关键字const呢?理由如下:
1) 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
2) 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
3) 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。
const关键字至少有下列n个作用:
(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;
(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;
(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。例如:
const classA operator*(const classA& a1,const classA& a2);
operator*的返回结果必须是一个const对象。如果不是,这样的变态代码也不会编译出错:
classA a, b, c;
(a * b) = c; // 对a*b的结果赋值
操作(a * b) = c显然不符合编程者的初衷,也没有任何意义。
分享到:
相关推荐
const关键字详解 const关键字是C++中一个非常重要的关键字,其主要用途是限定变量的读写权限,从而提高程序的健壮性。下面将通过对const关键字的详细解释来展示其灵活的用法。 1. 限定符声明变量只能被读 const...
C++语言中的const关键字是一个非常重要的修饰符,它的核心作用是声明一个变量为常量,即不可修改。正确地理解和使用const,可以帮助提高程序的健壮性和安全性。本文将详细介绍const关键字在C++中的使用方法。 一、...
- **作用**:使用`const`关键字可以定义常量,这些常量一旦定义就必须初始化,否则编译器将报错。 - **示例**: ```cpp const int Max = 100; // 正确 int i = 100; const int Max = i; // 正确 const int ...
### C++中的`const`关键字详解 在C++编程语言中,`const`关键字是一个非常重要的概念,它用于声明常量、限定函数参数以及优化内存管理。本文将深入探讨`const`关键字的各种用法和其背后的原理,帮助读者更全面地...
现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲解了一些知识,后来在网上面搜了关于const的关键字的讲解,但是搜到的内容和书上面讲解的内容有着非常让人疑惑的东西,看看下面的...
### C++中const关键字详解 #### 一、引言 在C++编程语言中,`const`关键字是一个非常重要的概念,它被广泛用于各种上下文中,以提高代码的安全性、可读性和效率。本文将详细介绍`const`关键字的用法及其在不同场景...
在C/C++编程语言中,`volatile`, `const`, `static` 和 `mutable` 是四个非常重要的关键字,它们各自有着独特的用途和含义。下面将详细解释这些关键字的作用以及它们在程序设计中的应用。 1. `volatile` 关键字 `...
全局`const`变量默认为文件作用域,其他文件无法访问,除非使用`extern`声明。例如: ```cpp const int globalConst = 42; // 必须初始化 extern const int anotherGlobalConst; // 需要在其他文件中声明为...
一、const 关键字的作用 -------------------- const 关键字是 C++ 中一个非常重要的关键字,它可以用来修饰变量、函数参数、函数返回值等,以表明这些实体的值不能被修改。使用 const 关键字可以带来以下几点好处...
1. const关键字的作用:const关键字可以修饰变量、函数参数、返回值等,使其不可修改,提高程序执行效率。 2. const关键字的特点:const关键字的实例用法更类似于#define命令,是一个值替换的过程,和C语言中的#...
浅析C++ 中const关键字 C++ 中的const关键字是一个限定符,它限定一个变量不允许被改变。使用const可以在一定程度上提高程序的安全性和可靠性。当我们在编写程序时,可能会遇到一些变量不需要被改变的情况,这时...
在C++编程中,`const`关键字是一种非常重要的特性,用于定义常量、限制指针和引用的行为,以及约束函数的副作用。以下是`const`关键字的一些常见用法: 1. **定义常量**: `const`关键字可以用来声明常量,确保...
关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定...
总的来说,`const`关键字在游戏效率优化中起到的作用主要体现在两个方面:一是通过保证参数和对象的不可变性,减少错误和增强代码的稳定性;二是通过编译器优化,减少不必要的内存拷贝和提高执行效率。在编写游戏...
Const 关键字的主要作用是防止意外的变动,提高程序的可靠性和健壮性。 一、Const 变量 Const 变量是指使用 Const 关键字修饰的变量,这种变量的值在定义后不能被修改。例如:`const int x = 10;` 在这里,x 的值...
const关键字的作用是非常灵活的,一个表达式中const的位置不同,效果可能就不一样了。 1. 防止传递的函数参数不被修改 在调用函数的形参中用const关键字,可以防止传递的函数参数不被修改。例如: ```c int ...