C++中的const
时间:2010-09-29 来源:再快一点
参考网址:
1.http://blog.csdn.net/miyunhong/archive/2010/09/24/5903857.aspx
2.http://developer.51cto.com/art/201001/180130.htm
3.http://developer.51cto.com/art/201002/182348.htm
4.http://tech.sina.com.cn/s/2004-09-17/0735426801.shtml
5.http://blog.chinaunix.net/u/30686/showart_524480.html
第一个例子:
#include <iostream>
using namespace std;
void main()
{
const int qq=456;
//int * const p表示声明一个指向非const对象的const指针
int * const p=(int * const)&qq;
*p=123;
cout<<qq<<endl;//输出456,没有变
cout<<*p<<endl;//输出123
int num=100;
//这一句回报错:p=#
int * const p2=#
*p2=6;
cout<<num<<endl;//输出6,值改变了
cout<<*p2<<endl;//输出6
}
第二个例子:
#include "iostream"
using namespace std;
void main()
{
const int num=123;
int *p=const_cast<int *>(&num);
//还可以这样写:int *p=(int *)#
*p=456;
cout<<num<<endl;//输出123,值没有被改变
cout<<*p<<endl;//输出456
}
第三个例子:
#include "iostream"
#include "My.h"
using namespace std;
void main()
{
extern const int a;
int *p = (int *)&a;
cout<<*p<<endl;//输出46
*p=99;//执行到此处会报错“内存不能为written”
}
My.h如下:
extern const int a=46;
1.http://blog.csdn.net/miyunhong/archive/2010/09/24/5903857.aspx
2.http://developer.51cto.com/art/201001/180130.htm
3.http://developer.51cto.com/art/201002/182348.htm
4.http://tech.sina.com.cn/s/2004-09-17/0735426801.shtml
5.http://blog.chinaunix.net/u/30686/showart_524480.html
第一个例子:
#include <iostream>
using namespace std;
void main()
{
const int qq=456;
//int * const p表示声明一个指向非const对象的const指针
int * const p=(int * const)&qq;
*p=123;
cout<<qq<<endl;//输出456,没有变
cout<<*p<<endl;//输出123
int num=100;
//这一句回报错:p=#
int * const p2=#
*p2=6;
cout<<num<<endl;//输出6,值改变了
cout<<*p2<<endl;//输出6
}
第二个例子:
#include "iostream"
using namespace std;
void main()
{
const int num=123;
int *p=const_cast<int *>(&num);
//还可以这样写:int *p=(int *)#
*p=456;
cout<<num<<endl;//输出123,值没有被改变
cout<<*p<<endl;//输出456
}
第三个例子:
#include "iostream"
#include "My.h"
using namespace std;
void main()
{
extern const int a;
int *p = (int *)&a;
cout<<*p<<endl;//输出46
*p=99;//执行到此处会报错“内存不能为written”
}
My.h如下:
extern const int a=46;
相关阅读 更多 +