04737C++程序设计(二)

/*
第一章 C++语言简介
第二节 C++语言的特点
*三 、强制类型转换运算符
const_cast<类型名>(表达式)
【程序1-2】 输入/输出 示例
P35
*/

#include <iostream>
using namespace std;
int main() {
	int a=10;
	const int *p=&a;   //不能使用常量指针p修改a的值
	const int ca =30;   //被const修饰
	int *q;
	cout<<"a的地址为:\t" <<&a<<"\ta的值为:\t"<<a<<endl;
	cout<<"*p指向的地址为:" <<p<<"\t*p的值为:\t" <<*p<<endl;
	q=const_cast<int *>(p);   //去除p的常量性赋给q,如果写q=p;会报错
	*q=20;   //如果写*p=20;是错误的
	cout<<"a的地址为:\t" <<&a<<"\ta的值为:\t"<<a<<endl;
	cout<<"*p指向的地址为:" <<p<<"\t*p的值为:\t" <<*p<<endl;
	cout<<"*q指向的地址为:"<<q<<"\t*q的值为:\t" <<*q<<endl;
	cout<<"分界线"<<endl;
	p=&ca;   //ca的值不能修改
	q=const_cast<int *>(p);   //去除p的常量性赋给q,如果写q=p;会报错
	*q=40;   //*p=40;错误
	cout<<"ca的地址为: \t" <<p<<"\tca的值为:\t"<<ca<<endl;
	cout<<"*p指向的地址为:" <<p<<"\t*P的值为:\t"<<*p<<endl;
	cout<<"*q指向的地址为:" <<q<<"\t*q的值为:\t"<<*q<<endl;
	return 0;
}

/*
运行结果: 
a的地址为:     0x6ffdfc        a的值为:       10
*p指向的地址为:0x6ffdfc        *p的值为:      10
a的地址为:     0x6ffdfc        a的值为:       20
*p指向的地址为:0x6ffdfc        *p的值为:      20
*q指向的地址为:0x6ffdfc        *q的值为:      20
分界线
ca的地址为:    0x6ffdf8        ca的值为:      30
*p指向的地址为:0x6ffdf8        *P的值为:      40
*q指向的地址为:0x6ffdf8        *q的值为:      40
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值