美文网首页c++学习笔记
C++ const关键字使用

C++ const关键字使用

作者: 檀香静雪 | 来源:发表于2020-07-12 18:11 被阅读0次

const定义常量

在c语言中,我们学习过可以使用#define来定义常量。但是#define的原理是简单的替换,因此对于#define来说没有类型检查这回事。

c++中提供了const关键字,用const关键字修饰的变量其值是不能修改的,因此可以使用const关键字来替换#define,这有益于编译器进行类型检查。

const关键字定义变量如下代码所示:

#include<iostream>
using namespace std;
const int MAX = 1000;
const double PI = 3.14;
const char NAME[] = "yurui";
int main() {
    MAX = PI;//报错
    int a = PI;//警告
    return 0;
}

如上程序所示,使用const关键字定义了MAXPINAME三个全局变量。

通过MAX = PI;对const修饰的变量进行赋值时会报错;通过int a = PI;进行赋值时编译系统会给出警告,提示类型不符合。

通过上面的例子,我们可以看出,通过使用const关键字修饰常量,在使用时编译系统会进行类型检查。

const定义常量指针

通过const关键字定义常量指针,这样就不能通过指针修改变量的值。

例如:

#include<iostream>
using namespace std;
int main() {
    int a = 10;
    const int* p = &a;
    *p = 10;//报错
    a = 100;//正确
    return 0;
}

如上面的程序,定义常指针p,当我们通过p去修改其所指向的值时,编译器就会对其报错。

但通过变量名还是可以修改其值,如a = 100;

另外,观察下面代码:

#include<iostream>
using namespace std;
int main() {
    const int* a;
    int* b;
    a = b;//正确
    b = a;//错误
    return 0;
}

对于常指针,我们可以直接对其赋值,如a = b;;对于非常量指针,我们不能使用常量指针对其进行赋值,如b = a;

const修饰引用对象

引用也可以用const关键字修饰,这样就不能通过引用名来修改变量值了。

如下代码所示:

#include<iostream>
using namespace std;
int main() {
    int a = 10;
    const int& r = a;
    a = 10;//正常
    r = 10;//报错
}

在执行到r=10;这条语句时编译器会报错,提示表达式必须是可修改的左值,因为我们再初始化引用时将其加上了了const关键字,我们就不能通过引用名来修改变量的值了。

对于a = 10;这条语句则执行正常,因为a没有const关键字修饰。

再考量下面的代码:

#include<iostream>
using namespace std;
int main() {
    const int a = 10;
    const int& b = a;//正确
    int& r = a;//错误
    r = 100;//错误
    a = 100;//错误
    return 0;
}

对于用const关键字修饰的变量,我们在为其创建引用对象时,任然需要创建const类型的引用对象,且无法通过变量名或引用名来修改变量的值。

相关文章

  • Golang筑基 ——常量

    golang中常量的定义使用const关键字相比于C++,golang无define关键字,所以在面试的时候也就不...

  • 【Swift 3 && C++11】<第一

    | Swift | C++:-:|:-:|:-:关键字 | let / var | const auto / au...

  • 关于C++ const 的全面总结

    原文地址: 不详 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面...

  • C++程序设计学习笔记:1 从C走进C++ 关键字const和常

    1 定义常量 关键字const,用于定义常量。例如: 学了 C++ 之后,应该多用const,少用 define。...

  • C++ const用法

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结...

  • const用法总结

    const概述 const是指使用C和C++中常见关键字,在C语言中,主要用于定义变量为常类型以及修饰参数与返回值...

  • Dart 基本语法

    Final以及Const 在 Dart 中使用 final 以及 const 关键字来申明常量。使用 const ...

  • c++ volatile关键字

    Ref cppreference - const vs volatileC/C++中volatile关键字详解 v...

  • c++ const 关键字小结

    Ⅰ 前言 c++ const关键字是让我感到一直头疼的地方,决定花点时间翻c++ primer来重温一下const...

  • C++ const关键字使用

    const定义常量 在c语言中,我们学习过可以使用#define来定义常量。但是#define的原理是简单的替换,...

网友评论

    本文标题:C++ const关键字使用

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