当前位置: 代码迷 >> C语言 >> 指针问题面面看
  详细解决方案

指针问题面面看

热度:118   发布时间:2006-07-14 21:41:35.0
另外,我感觉,尽管指针很重要,要学好,但是也不能进入另一个怪圈:
就是凡事都把指针拉上,好象不拉上,就显示不出水平。。
是否用指针要看情况的,应该能不用尽量不用,简洁为上。

----------------解决方案--------------------------------------------------------
哦,15楼说的那个例子也好
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-14 13:44:34
grub2linux

等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
  得分:0 
指针是unsign int型?
如果是这样的话,那用这个指针只能指向64KB的范围内啦!这怎么得了!

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-14 13:49:01
song4

等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
  得分:0 
哦,大家都回他拉
就记住吧,你要的是指针的地址内的值起作用,还是地址起作用
不要一看指针就是双向的
那是基于它所指的值
如果,用到地址,你可以试着把他的地址看成一个int
然后用相对与它(这个指针)的指针来发挥作用(也就是2级指针)
这也是理解指针是特殊int的一个例子
用长了就体会了
加油
LZ,那里你写的很不错(尽管我就看那一点,还是看别的回帖时看见的)
----------------解决方案--------------------------------------------------------
以下是引用grub2linux在2006-7-14 21:46:11的发言:
指针是unsign int型?
如果是这样的话,那用这个指针只能指向64KB的范围内啦!这怎么得了!

哈哈,真的,加个LONG,哪天我清醒了,想起来了过来答一下
学计算机组成结构了么?跟段地址有关


----------------解决方案--------------------------------------------------------
刚才,突然模糊起来了!
试了下 SIZEOF(P),还真是 2 !
这不就是64K嘛!
如果是指段地址的话,怎么会是光秃秃的段地址呢? 偏移值没有啊,怎么表示完整的地址呢?
或者 是纯DOS,程序的指针只能限制在64KB内?(因为,VC中指针容量是4字节,WIN32规范)

望了解的解答一下。。。

----------------解决方案--------------------------------------------------------
以下是引用grub2linux在2006-7-14 21:41:35的发言:
另外,我感觉,尽管指针很重要,要学好,但是也不能进入另一个怪圈:
就是凡事都把指针拉上,好象不拉上,就显示不出水平。。
是否用指针要看情况的,应该能不用尽量不用,简洁为上。


基本同意“怪圈”说法:用指针其实很危险,因为指针内存放的数据是其它类型数据在内存中存放的地址,如果搞不好,你把指针指向某一“黑洞 ”,那就可能造成你的程序或机器“打摆子”了哦!

不过,小弟把这么长的贴子放出来也就是希望给那些对牵涉到指针问题就犯糊的朋友一点提示,毕竟指针这个概念还是有点困难(针对初学者),真不想引来如此多高手的激烈讨论,而初学C的同志大多不能沉下心来把贴子看完,实在犯了学C之大忌也!


----------------解决方案--------------------------------------------------------
  相关解决方案