C++入门基础02:const修饰限定符

C++入门基础02:const修饰限定符

const 限定符
const 作用:它限定一个变量不允许被改变,使用 const 在一定程度上可以提高程序的安全性和可靠性。
const + 类型:说明 const 修饰的是类型,想让类型为常量,也就是这个类型的值为常量。
例如 const int *a; 本来是定义一个指针变量,指针变量所指向的值为 int 类型。const修饰 int 类型,那也就是说这个 int 类型的值为常量,也就是说指针指向的值为常量。
const + 变量:说明 const 修改的变量,想让这个变量为常量。
例如 int *const a; 本来是定义一个指针变量,指针变量所指向的值为 int 类型。const修饰变量,那就是说这个指针变量为常量,不可变。指针所指向的 int 类型的值是可变的。

#include <iostream>
//系统定义头文件一般是尖括号
#include<fstream>
#include<string>
using namespace std;

//这个函数的参数是一个引用
void fun1(int& arg) {
    
    
    //引用在函数内可以修改参数的值,并且将参数值回传。
    //因此如果想返回某个值,并不一定要return返回一个值,而是可以通过引用修改参数值后回传。
    arg = arg + 10;
}

//这个函数的参数是一个引用
//在参数前加一个const,这样就保证了参数不可以被修改了。就不能想fun1那样在函数内进行修改返回了。
void fun2(const int& arg) {
    
    
    //arg = arg + 10; //这里会报错
}

int main()
{
    
    
    //一、const 修饰符
    //const 修饰变量
    const int a = 10; //常量是不可以修改的
    //a = 20; //这里会报错。

    //二、const修饰指针(两种情况)
    int b = 9; 
    //1、情况1,const放在前面
    //const放到前面表示指针所指向的内容是不可以修改的。
    const int* p = &b;
    //*p表示解引用,可以取到指针所指向的内容。
    cout << "p指针存储的内容:" << *p << endl;
    //*p = 10; //这里会报错,因为const在前面,指针所指向的内容是不可以被修改的。

    //2、情况2,const修饰的是指针。
    //指针中存的是地址,const修饰的是指针,因此地址是不能修改的。
    //因此我们不能将另一个地址赋给这个指针。
    int* const p1 = &b;
    cout << "p1指针:" << p1 << endl;
    cout << "b指针:" << &b<< endl;
    //p1 = &a; //这里会报错

    //三、const传递参数
    int c = 10;
    cout << "c函数执行前:" << c << endl;
    //c当做参数传入fun1中。
    fun1(c);
    cout << "c函数执行后:" << c << endl;
	//c当做参数传入fun2中,参数是不可以被修改的。

    return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37755995/article/details/127939944