美文网首页
关于const的那些事

关于const的那些事

作者: alango | 来源:发表于2018-09-08 00:55 被阅读0次

最近在通过 C++ Primer 这本书复习C++。在看到const这一节中,看到了很多容易混淆的几个点,因此记录下来。

为什么使用const

在程序中,如果经常用到一个数字,那么就可以将它定义为一个变量,这样,在改变一个数字的时候,就只需要改变这个变量的值就好了,这样在使用次数很多的时候,会大大减小工作量。

但是在程序中,很容易就造成该变量的数值变化了,而且有些是很不容易发现的错误。

就像是

#include <iostream>
using namespace std;
int main() {
    int a = 1024;
    if (a = 1) { // 在这里,就对 a 的值进行了修改,而且是很不容易发现的错误
        // ...
    }
    return 0;
}

所以,此时就需要 const 类型的变量。

所谓 const 类型的变量,是指的在C++中,const 关键词告诉编译器,这个变量的值是不变的,不能对其进行修改,也就是我们常说的 Read-Only 类型的变量。

const的定义方法

在定义 const 变量的时候,因为常量在定义后不能对其值进行修改,所以,在定义的时候,一定要进行初始化。例如

const int a = 1024;
const在指针中的应用

在实际中,指向常量的指针,往往被用于函数参数

一、
试图将一个非 const 对象的指针指向一个常量对象,会引起编译错误。

const double a = 10;
double *p = &a; // Error.

二、
const double *p; 定义一个指向 double 类型的 const 对象的指针,可以从右向左理解,p是一个指向 double 类型的、被定义为 const 类型 的指针。我们可以对其进行重新赋值,使其指向不同的对象,但是不能改变 p 指向的对象的数据。

#include <iostream>
using namespace std;
int main() {
    double a = 10, b = 12;
    const double *p = &a;
    *p = 11; // Error.
    p = &b; // OK.
    return 0;
}

三、
int *const p = &a;定义一个指向非 const 对象的 const 指针,可以从右向左理解,p是一个指向 int 类型对象的 const 指针。它不能指向 const int 类型的对象。

相关文章

  • 关于const的那些事

    最近在通过 C++ Primer 这本书复习C++。在看到const这一节中,看到了很多容易混淆的几个点,因此记录...

  • C++数据类型(四)const常量

    const常量 const常量:值无法被改变的变量 关于const的一些规则 const的引用 与可变变量的引用不...

  • Chapter7 Classes

    关于const 建议尽可能使用const来定义方法, 这样这个方法可以用于const对象 其中的const代表th...

  • 那些关于“关于”的事

  • 关于if的那些事

    if 语句可能执行可能不执行,只需要满足条件多重if语句即else if 语句 可能执行也可能不执行,只需要满足...

  • 关于那些事

    现在的我们还年轻,并不知道未来的事情,也许偶尔也会感叹时间的无情,回过头来,你还是依旧去努力,一只说后悔,一直在努...

  • 关于「那些事」

    文|简哓单 关于你,我不想多提,可是又不太愿意,你就这样悄然离去,无声的夜,将那背影拉的异常清冷。可我,却...

  • 关于那些事

    我喜欢的那些,好吧!我承认除了对生活中的事、人还算坚定;对于其它的,我好像就稍微会有些易变;当然啦,这算花心吗?...

  • 关于那些事

    自从《明朝那些事》流行以后,“那些事”文体日益盛行,其类似散文、潇洒自如、无拘无束的书写风格受到万千写手的喜欢,我...

  • 关于那些事

    我似乎明白一点的是,大学里不谈恋爱的不一定是长的不好看,也不一定是没人爱,我是那众多人里的一员,我想了很久其实...

网友评论

      本文标题:关于const的那些事

      本文链接:https://www.haomeiwen.com/subject/ruxkgftx.html