在程序中,对于数据,我们有一种数据希望给定了,就不会改变。书上常拿圆周率来举例!
我们把这类一开始就给定的数据,并且在程序运行过程中不改变的数据称为常量。
那么这里 也就说明了,如果要用const ,那么你要保证你那个数是个常量。
第一点:既然是不变,而我们又知道它的值,那么我们必须对他初始化。以后不能改变它!
第二点:常量在内存中有值,且伴随它所在的作用域存在,可以理解为大括号内。
第三点:const修饰什么,什么就是常量(下边将结合一些代码,给出几种常量类型)
#include "stdafx.h" #include<iostream>
int _tmain(int argc, _TCHAR* argv[]) {
//const int a;
//错误,想声明一个常量a,但未初始化,常量必须在开始时初始化。
const int a = 10;
//正确,声明了一个常量a,并初始化为10。
// a=20;
//错误,企图将20给常量a,这时a已经是个常量,不能在程序中改变
const int *p;
//正确,声明了一个指针p,这个指针指向一个常量
//const右边是它直接修饰的对象,也就是int类型。
p = &a;
//正确,将a的地址给指针p,注意此时的p是指针变量,p可以随意改变
int b = 10;
//定义一个变量b,初始化为10;
p = &b;
//正确,指针p重新指向另一个地址。
int const *p2;
//正确,定义了一个指向常量的指针,与上边写的 const int *p是一样的。
//int * const p3;
//错误,定义了一个常指针,也就是说指针本身是个常量,既是常量就该初始化。
int * const p3 = &b;
//正确,初始化了一个常指针
//p3 = &a;
//错误,企图改变p3的指向,此时,p3是个指针常量,不允许更改。
*p3 = 10;
//正确,改变p3所指向空间的值,注意,这时p3还是p3,只是p3对应空间里存的数改变了。
//以上就是主要内容了
system("pause");
return 0;
}
原文:http://www.cnblogs.com/Alyoyojie/p/5128750.html