欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

指向变量的常指针与指向常变量的指针详细解析

时间:2022-11-21 08:27:00|栏目:C代码|点击:

常(量)指针
常指针就是我们说的指向常量的指针,顾名思义,它是用来指向常量的。

用常指针指向常变量
实际上,C++规定只能用指向常变量的指针指向常变量,普通指针指向它就会报错,原因也很容易理解,我们用普通指针指向常变量之后,有可能就会进行改变常变量数值的操作,这样做是不被允许的。

常指针的定义方法:

复制代码 代码如下:

const 类型名  * 常指针名;

下面是它的一个简单的使用示例:
程序1.1.1
复制代码 代码如下:

#include<iostream>
using namespace std;
int main()
{
 const int i=5;//定义一个int型常变量
 const int *p;//定义一个int型常指针
 p=&i;//用常指针指向常变量
 cout<<*p<<endl;
 return 0;
}

运行结果:


如果我们使用普通指针变量来指向常变量:
程序1.1.2
复制代码 代码如下:

#include<iostream>
using namespace std;
int main()
{
 const int i=5;//定义一个常变量
 int *p;//定义了一个int型指针
 p=&i;//使用一般的指针指向常变量
 cout<<*p<<endl;
 return 0;
}

就会报错:

用常指针指向一般变量(非const型变量)
用常指针也是可以指向一般变量的,不过不可以通过常指针来更改一般变量的值,但是可以通过一般变量的变量名来修改变量的值。
下面看一个示例:

程序1.2.1

复制代码 代码如下:

#include<iostream>
using namespace std;
int main()
{
 int i=5;//定义一个一般变量
 const int *p;//定义了一个常指针
 p=&i;//使用常指针指向一般变量
 cout<<*p<<endl;
 i=10;//通过一般变量的变量名来修改值
 cout<<*p<<endl;
 return 0;
}


运行结果:

如果我们使用常指针来修改一般变量的值:

复制代码 代码如下:

*p=10;

就会报错:

小结:常指针可以指向常变量和一般变量,但是都不能通过指针改变它指向的变量的值。

指针常量
指针常量是指的指针本身就是一个常变量,一经赋初值就不可以被更改。
上面已经说过,只有常指针才可以指向常变量,所以指针常量只可以指向一般变量,而且一旦赋给了初值,就不可以再更改。

定义方法:

复制代码 代码如下:

类型名 * const 指针常量名=变量地址;

因为指针是常变量所以它在定义的时候就应该赋初值。

一个程序示例:

程序2.1

复制代码 代码如下:

#include<iostream>
using namespace std;
int main()
{
 int i=5;//定义一个一般变量
 int * const p=&i;//定义了一个指针常量
 cout<<*p<<endl;
 *p=30;//通过指针来改变指向的变量的值
 cout<<*p<<endl;
 return 0;
}

运行结果:

上一篇:基于C语言利用哈夫曼树实现文件压缩的问题

栏    目:C代码

下一篇:C语言排序之 堆排序

本文标题:指向变量的常指针与指向常变量的指针详细解析

本文地址:http://www.codeinn.net/misctech/219522.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有