源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-08-25 15:56 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:指向变量的常指针与指向常变量的指针详细解析
[b]常(量)指针 [/b]常指针就是我们说的指向常量的指针,顾名思义,它是用来指向常量的。 [b]用常指针指向常变量 [/b]实际上,C++规定只能用指向常变量的指针指向常变量,普通指针指向它就会报错,原因也很容易理解,我们用普通指针指向常变量之后,有可能就会进行改变常变量数值的操作,这样做是不被允许的。 [b]常指针的定义方法: [/b]
[u]复制代码[/u] 代码如下:
const 类型名  * 常指针名;
下面是它的一个简单的使用示例: [b]程序1.1.1 [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main() {  const int i=5;//定义一个int型常变量  const int *p;//定义一个int型常指针  p=&i;//用常指针指向常变量  cout<<*p<<endl;  return 0; }
运行结果: [img]http://files.jb51.net/file_images/article/201310/20130921103243140.png[/img] 如果我们使用普通指针变量来指向常变量: [b]程序1.1.2 [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main() {  const int i=5;//定义一个常变量  int *p;//定义了一个int型指针  p=&i;//使用一般的指针指向常变量  cout<<*p<<endl;  return 0; }
就会报错: [img]http://files.jb51.net/file_images/article/201310/20130921103719953.png[/img] [b]用常指针指向一般变量(非const型变量) [/b]用常指针也是可以指向一般变量的,不过不可以通过常指针来更改一般变量的值,但是可以通过一般变量的变量名来修改变量的值。 下面看一个示例: [b]程序1.2.1 [/b]
[u]复制代码[/u] 代码如下:
#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; }
运行结果: [img]http://files.jb51.net/file_images/article/201310/20130921104416593.png[/img] 如果我们使用常指针来修改一般变量的值:
[u]复制代码[/u] 代码如下:
*p=10;
就会报错: [img]http://files.jb51.net/file_images/article/201310/20130921104733390.png[/img] 小结:常指针可以指向常变量和一般变量,但是都不能通过指针改变它指向的变量的值。 [b]指针常量 [/b]指针常量是指的指针本身就是一个常变量,一经赋初值就不可以被更改。 上面已经说过,只有常指针才可以指向常变量,所以指针常量只可以指向一般变量,而且一旦赋给了初值,就不可以再更改。 [b]定义方法: [/b]
[u]复制代码[/u] 代码如下:
类型名 * const 指针常量名=变量地址;
因为指针是常变量所以它在定义的时候就应该赋初值。 一个程序示例: [b]程序2.1 [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main() {  int i=5;//定义一个一般变量  int * const p=&i;//定义了一个指针常量  cout<<*p<<endl;  *p=30;//通过指针来改变指向的变量的值  cout<<*p<<endl;  return 0; }
运行结果: [img]http://files.jb51.net/file_images/article/201310/20130921110308937.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部