返回信息流常指针和一般的指针有什么区别呢?
求一个常指针应用的例子。
这是一条镜像帖。来源:北邮人论坛 / cpp / #39535同步于 2010/5/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
指针
sichao
2010/5/24镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
一般的指针可以重新指向其他的变量,而常指针只能指向初始化时的那个变量,以后不能重新指向其它变量。
char a[10]={0},b[10]={0};
char * const pch=a;
*pch=1; // a[0]=1;
pch=b; //error,不能重新指向其它变量
常指针也能指向新的其他变量吧!!
请看例子:
//例6.10 常指针示例。观察以下程序的运行。
#include <iostream>
using namespace std;
void main()
{int ia=10, ib=20;
const int *ptint; //常指针声明
ptint=&ia; //用ia地址初始化
cout<<*ptint<<endl;
ptint=&ib; //改变为ib的地址
ib=ib+100; //ib本身仍然可以改变
cout<<*ptint<<endl;
//*ptint=100; //语句错误:左值是常量
}
////////////////////////////////
【 在 bullet 的大作中提到: 】
: 一般的指针可以重新指向其他的变量,而常指针只能指向初始化时的那个变量,以后不能重新指向其它变量。
: char a[10]={0},b[10]={0};
: char * const pch=a;
: ...................
const int*p
int *const p
前者*p内容为常量,不可变。但是p可变
后者p为常量,p一旦赋地址就不能再变,但是后者*p可以变
不知道这样说明白否?
一般指针两者皆可变。。。