在标准C++中,这样定义的是一个常量,用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。
const使用(类型):
1、用于指针的两种情况:const是一个左结合的类型修饰符.
int const*A//A可变,*A不可变
int*const A//A不可变,*A可变
2、限定函数的传递值参数:
void function(const int Var)//传递过来的参数在函数内不可以改变.
3、限定函数返回值型.
const int function()//此时const无意义
const myclassname function()//函数返回自定义类型myclassname.
4、限定函数类型.
void function()const//常成员函数,常成员函数是不能改变成员变量值的函数。
扩展资料:总结:
1、指针本身是常量不可变
(char*) const pContent
const (char*) pContent
2、指针所指向的内容是常量不可变
const (char) *pContent
(char) const *pContent
3、 两者都不可变
const char* const pContent
4、其中区别方法:
沿着*号划一条线,
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
5、const修饰函数参数
const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。它可以很好
void function(const int Var)//传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)
void function(const char* Var)//参数指针所指内容为常量不可变
void function(char* const Var)//参数指针本身为常量不可变(也无意义, 因为char* Var也是形参)
参数为引用,为了增加效率同时防止修改。
6、修饰引用参数时:
void function(const Class&Var)//引用参数在函数内不可以改变
void function(const TYPE&Var)//引用参数在函数内为常量不可变
7、const 修饰函数返回值
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
(1) const int fun1() 这个其实无意义,因为参数返回本身就是赋值。
(2) const int * fun2()
8、调用时 const int *
参考资料:
百度百科——CONST(C中的CONST)
有一个从右向左解读的说法,如:const int *xPtr
xPtr 是指针(*)指向int类型,其内容是const
int * const xPtr
xPtr是常量 指针(*)指向int类型
第三种没见过
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)