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;
}