菜鸟小妹!被指针搞晕了!请各位师哥帮忙解决一下疑问!

wangtiantian23 2005-07-21 09:11:10
指针到底应该怎么理解!
int *p;
*p指向哪里!
p指向哪里!

还有const 指针我实在不明白!它有什么特点!
const int *ptr=#这里是指向一个内存地址是吗!
*ptr能指向哪里不能指向哪里!
ptr能指向哪里不能指向哪里!

这个const指针到底是让内存的地址不能改变还是让内存中对应的值不能改变!
...全文
555 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
UNCLEDOG 2005-07-22
  • 打赏
  • 举报
回复
BS
菜鸟小妹!*************
一类的标题.
TomDebug 2005-07-22
  • 打赏
  • 举报
回复
搂住发完贴跑了,留下一帮色狼
houwhf 2005-07-22
  • 打赏
  • 举报
回复
.......
语句
int *p 是定义了一个指向INT数据的指针P 这里的*仅仅说明P是一个指针! 此时P的指向~ 天才知道!

int *p,a;
a=1;
p=&a; 此时我们说*P=1 这里*和P是在一起理解的 *p就是P指向地址里保存的数据

iwlla 2005-07-22
  • 打赏
  • 举报
回复
续上
const int *p就是说p是一个指针指向一个const int
int const * p和上一行一相
int * const p则是说p是一个const指针指向一个int
iwlla 2005-07-22
  • 打赏
  • 举报
回复
用BS的说法,从右向左读:
int * p就是p是一个指针(*)指向一个int
guofu_x 2005-07-22
  • 打赏
  • 举报
回复
不想回答了
clasj 2005-07-22
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4158/4158509.xml?temp=.7729761
shaziz 2005-07-22
  • 打赏
  • 举报
回复
我也是菜鸟小m,帮顶一下。。论坛的热心人真多,受教了。。呵呵
programhunter 2005-07-22
  • 打赏
  • 举报
回复
这人是不是在上机做笔试时,来这在线问问题滴?
Sangel 2005-07-22
  • 打赏
  • 举报
回复
楼上的难道现在才知道这个定律
mic_c 2005-07-22
  • 打赏
  • 举报
回复
还是女的吃香,我的帖子和起来的回复也没那么多
帮你顶一下~~~
lwg0869 2005-07-22
  • 打赏
  • 举报
回复
相对菜鸟小M 偶更喜欢亮鸟小M
云梦谭 2005-07-21
  • 打赏
  • 举报
回复
megaboy(此人已注销)

我并不是说const定义一个常量,而是定义了“是指向常量的指针变量”
当然对于我所打的比喻中,如果纸条上的地址变了,新地址里住的人可能就不一样了。但每给出一个地址,对应地址里所住的人也就应该确定。出就是这个指针不能指向变量地址。而只能指向常量地址。
我想话说起来比较绕口。大家讨论啊。
z19820201 2005-07-21
  • 打赏
  • 举报
回复
感觉megaboy(此人已注销) 说的要好理解一些,对于这个特殊的例子理解为readonly自然一点。
dounier 2005-07-21
  • 打赏
  • 举报
回复
不是楼上,是楼上的楼上的楼上的........
dounier 2005-07-21
  • 打赏
  • 举报
回复
楼上的兄弟什么意思?

const在*前面,所以*ptr的内容是不可以修改的。

注意*ptr不是指向哪里,*ptr是指ptr地址里的内容.

你的意思就是说*ptr里面的内容不管采用什么手段都不能修改了吗?
yhbttfile 2005-07-21
  • 打赏
  • 举报
回复
如果我是指针,我的内容就是对象的地址。

如果我是星号(*),且用于定义指针。如果我右边有const,表示指针不能被改变(不能再指向其他对象);如果我左边有const,表示指针指向的对象不能改变。
megaboy 2005-07-21
  • 打赏
  • 举报
回复
对于 yetyongjin(云梦谭)

const int *ptr=#  是指向常量的指针变量,这样定义的指针变量可以修改指针值,但不能修改指针所指常量值。接上面比喻,也就是纸条上所写的地址是可以变的。但地址里所住的人是不能变的。当然这词句定义了指向指针常量的指针变量,成了间接指针,复杂多了。
------------------------------------------------------------

上面这段话是错的,const实际上不能说定义一个常量,这样理解是错的。
offertome 2005-07-21
  • 打赏
  • 举报
回复
好好看看c++ primer
云梦谭 2005-07-21
  • 打赏
  • 举报
回复
int *p;        给你一张纸条,上面写着你要访问的人的地址,当然你不知道这个人是谁
*p指向哪里!      指向了地址(估且说是一个房间吧)里住着的人,也就是要访问的人。
p指向哪里!       指向了纸条上地址的实际位置


const int *ptr=#  是指向常量的指针变量,这样定义的指针变量可以修改指针值,但不能修改指针所指常量值。接上面比喻,也就是纸条上所写的地址是可以变的。但地址里所住的人是不能变的。当然这词句定义了指向指针常量的指针变量,成了间接指针,复杂多了。
const int *ptr 与int const *ptr 是一样的。


int * const p; 是指针常量。接上面比喻,纸条上的地址是一旦给定(定义),就不能变,但地址里所住的人是可以变的。
加载更多回复(18)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧