const是C++中的关键字,表示“constant”即不变的、恒定的或者不可修改的。在C++中,const可以修饰变量、指针、函数参数和函数返回值等。
当定义一个变量时,如果加上const关键字,则说明该变量不可修改,只能读取其值。例如:
const int a = 10;
当试图修改a的值时,编译器会报错。
const也可以作用于指针。一个指向常量的指针不能用于修改值,但可以指向不同的常量。一个常量指针可以用于修改值,但只能指向初始化时指定的对象。例如:
int a = 10;
const int *p1 = &a; //指向常量的指针
int *const p2 = &a; //常量指针
在上述例子中,p1指向a,但不能通过p1来修改a的值;p2可以修改a的值,但指针本身是不可修改的。
在函数中,如果某个参数不会被修改,可以将其定义为const类型。这样可以防止意外的修改,从而增加代码的可靠性。同样地,函数返回值也可以被定义为const类型,防止其被修改。例如:
int add(const int a, const int b) // const修饰函数参数
{
return a + b;
}
const int result = add(1, 2); // const修饰函数返回值
在上述例子中,add函数参数a和b都被定义为const类型,保证函数内部不会修改它们的值;同时,函数返回值result也被定义为const类型,防止其被修改。
在C++中,const类型的指针可以防止指针被修改,同时也可以指向不同的对象。这种特性在函数返回值中非常有用。例如:
const char *getName() // 返回指向常量的指针
{
return "Hello World";
}
在上述例子中,getName函数返回一个指向常量的指针,指向字符串常量"Hello World"。由于返回值是指向常量的指针,因此调用者不会修改该指针的值,从而确保了返回值的可靠性。