// 指针常量和常量指针
//1)指针常量可以通过指针改变变量的值
Int x = 2;
Int * const point = &x;
*point = 4; //now x = 4
void main()
...{
char * const str = "china";
*str = "yangzhou"; // right 可以修改字符串的内容
str = "another"; // wrong
}
//2)常量指针不可以
Int x = 2;
Const int * point = &x;
*point = 4; // wrong
void main()
...{
const char * str = "china";
*str = "yangzhou"; // wrong
str = "another"; // right 修改指针指向另一个字符串
}
//3)上面两个例子看起来头疼吧,教你一个好方法;
//指针常量中,const用来修饰str,故str不能改变;
//常量指针中,const用来修饰*str,故*str不能改变。
//4)两种方法的组合,使地址和内容都无法改变
void main()
...{
const char * const str = "china";
*str = "yangzhou"; //wrong
str = "another"; //wrong
}
//5)const修饰“引用”,使“引用”不可修改。
void main()
...{
int x = 20;
const int &rx = x;
rx = 2000; //wrong
}
//6)声明函数时若在末尾加const,表示在该成员函数内不得改变类变量
class myclass
...{
char * str;
myclass()
...{
str = new char[64];
}
~myclass()
...{}
char fun(char nstr) const
...{
str = "china";//wrong
return str;
}
}
//7)数据传递给函数的方式默认是值传递,但如果一个函数被调用的次数过多,那就会
//产生很多个拷贝,造成效率不高,故我们可以使用“引用”,但“引用”带来的隐患是它可
//能修改变量的值,为此,我们可以使用“const引用”,使“引用”不可修改
int ReturnInt(const int &);
void main()
...{
int i=10;
ReturnInt(i);
}
int ReturnInt(const int &nInt)
...{
nInt++;//wrong
return nInt;
}
本文详细解析了C++中指针常量与常量指针的概念及使用方法,包括如何通过指针改变变量值、限制指针修改内容及地址、函数内部使用const防止变量被更改等内容。
501

被折叠的 条评论
为什么被折叠?



