mypoint.cpp

来自「编程实例」· C++ 代码 · 共 59 行

CPP
59
字号
#include <iostream>

using namespace std;
//typedef const double *pc;//定义指向常量对象的指针;
//typedef double *const cp;//定义常量指针;
//typedef double * pDbl;
void main()
{
	int iVal=5;
	int *pi = &iVal;	//如果声明为int *pi = iVal则出现错误

	cout<<*pi<<endl;
	cout<<pi<<endl;

	//double a1 =1.0;
	//double a2 =2.0;
	//const pdbl dblQ =&a1;
	//*dblQ =a2;
	//cout<<*dblQ<<endl;
	/*
	double a1 =1.0;
	double a2 =2.0;

	pc p1 =&a1;
	p1 =a2;
	cout<<*p1<<endl;
	*/

	//下面的代码讲述关于const修饰的指针

	//指向const对象的指针
	double	dblVal =5.0;
	double  dblTry =6.0;
	const	double	 *pDbl =0;//声明指向const对象的指针

	pDbl =&dblVal;	//将变量dblVal的地址赋给指针
	//*pDbl =7.0;	这条语句会出错,因为,*pDbl对应的是常量。
	//然而,语句dblVal =7.0;却不会错,此时,*pDbl的值也变为7.0。
	//因此,为了确保不能改变dblVal的值,应该声明dblVal为如下语句:
	//const dblVal =5.0;
	cout<<*pDbl<<endl;

	pDbl =&dblTry;	//pDbl是可变的,为其赋不同的地址值,使其指向不同的对象
	cout<<*pDbl<<endl;

	//const指针
	double	dblF =7.0;
	double  dblS =8.0;
	double *const ptr =&dblF;//声明常量指针

	//ptr =&dblS;这条语句错误,此时的指针是常量,不能为改变指针的内含地址值
	cout<<*ptr<<endl;

	*ptr =dblS;//常量指针,然而其所指的对象却是可改变的
	cout<<*ptr<<endl;

	const double *const pCtr =&dblF;//声明常量指针,指向常量对象
	cout<<*pCtr<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?