const传奇
2007-03-16 21:56:40 来源:WEB开发网核心提示: void main(void){const char* const str = "Hello, World";//指向字符串常量的常指针*str = ''M'';//错误,不能改变字符串内容str = "Bye, World&q
void main(void)
{
const char* const str = "Hello, World"; //指向字符串常量的常指针
*str = ''M''; //错误,不能改变字符串内容
str = "Bye, World"; //错误,不能改变指针指向的地址
}
Const和引用引用实际上就是变量的别名,这里有几条规则:
声明变量时必须初始化
一经初始化,引用不能在指向其它变量。
任何对引用的改变都将改变原变量。
引用和变量本身指向同一内存地址。
下面的例子演示了以上的规则:
void main(void)
{
int i = 10; //i和j是int型变量
int j = 20;
int &r = i; //r 是变量i的引用
int &s; //错误,声明引用时必须初始化
i = 15; //i 和 r 都等于15
i++; //i 和 r都等于16
r = 18; //i 和r 都等于18
printf("Address of i=%u, Address of r=%u",&i,&r); //内存地址相同
r = j; //i 和 r都等于20,但r不是j的引用
r++; //i 和 r 都等于21, j 仍等于20
}
用const修饰引用,使应用不可修改,但这并不耽误引用反映任何对变量的修改。Const加在数据类型前后均可。例如:void main(void)
Const和成员函数
{
int i = 10;
int j = 100;
const int &r = i;
int const &s = j;
r = 20; //错,不能改变内容
s = 50; //错,不能改变内容
i = 15; // i和r 都等于15
j = 25; // j和s 都等于25
}
更多精彩
赞助商链接