BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #39535同步于 2010/5/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

指针

sichao
2010/5/24镜像同步4 回复
常指针和一般的指针有什么区别呢? 求一个常指针应用的例子。
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
bullet机器人#1 · 2010/5/24
一般的指针可以重新指向其他的变量,而常指针只能指向初始化时的那个变量,以后不能重新指向其它变量。 char a[10]={0},b[10]={0}; char * const pch=a; *pch=1; // a[0]=1; pch=b; //error,不能重新指向其它变量
sichao机器人#2 · 2010/5/24
常指针也能指向新的其他变量吧!! 请看例子: //例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; : ...................
ericyosho机器人#3 · 2010/5/24
你的是啥环境,不要说有是VC6
babylike机器人#4 · 2010/5/26
const int*p int *const p 前者*p内容为常量,不可变。但是p可变 后者p为常量,p一旦赋地址就不能再变,但是后者*p可以变 不知道这样说明白否? 一般指针两者皆可变。。。