为什么要用指针(一定给分)

kwany 2003-08-26 01:01:07
为什么要用指针?
或者说用指针有什么好处?

最好给例子!

帖子可加分...
谢谢!!
...全文
288 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
loyyer 2003-08-26
  • 打赏
  • 举报
回复
if(你用指针)
{
你会发现:
{
C/C++的魅力无限;
它同样也是一把双刃剑;
}
}
else if(你不用指针)
{
那就好比世界上的一切都能使人感到疲劳;
}
else 就别学C/C++了;
……
ShLikeWater 2003-08-26
  • 打赏
  • 举报
回复
c的最大优点是灵活,而灵活是靠指针实现的。
lw549 2003-08-26
  • 打赏
  • 举报
回复
指针就像一把刀,打架的时候带把刀比赤手空拳要nb得多,
但是要是用得不顺手,照样可能导致误伤自己,还不如不用的好。

高手选择在适当的时候用适当的工具,该用的时候才用。
robbie24 2003-08-26
  • 打赏
  • 举报
回复
你先想想不用指针的可行性.
new/malloc抓来的内存给谁?
上面也有人说过了,CPP中的多态就是要通过引用或指针来实现的.
你学C的时候,你老师一定会帮你讲类似的话,"指针学不好,就等于C没学好过."
当然了,灵活性与潜在的隐患都是你因该注意的问题.
双刃剑而已.
如果嫌麻烦的话,没人逼你学C/CPP,你可以做出自己的选择,可以生活在一个没有指针的世界.
就这么简单.

KingCrane 2003-08-26
  • 打赏
  • 举报
回复
其实java虽然我们不能用指针,但是它的内部实现(类对象)都是用指针的啊,delphi的类对象也是用指针实现的。基本类型一般都不是用指针的,但是为了提高效率java和delphi 的string类型的变量就用指针来实现的(所以java中sting对象才会有一些奇怪的现象)。
感觉不是底层的编程一定要用到指针的情况要少一些,如果要调用winAPI的话,指针我看是少不了的了。
shishiXP 2003-08-26
  • 打赏
  • 举报
回复
指针是地址,可以方便控制数据

接分!
skywater 2003-08-26
  • 打赏
  • 举报
回复
首先是效率,包括空间上和时间上的。例如当在函数中需要传递一个很大的参数的时候,使用指针传递,比使用值传递效率不知要高上多少倍。
其次是数据结构,只有使用指针,才能实现优雅而高效的数据结构,例如链表,树、哈希表等,这些当你学完数据结构之后就明白了没有指针的编程,是最最痛苦的。
暂时只想到这么多。
zcchm 2003-08-26
  • 打赏
  • 举报
回复
c++使用指针和引用实现面向对象(多态)
robbie24 2003-08-26
  • 打赏
  • 举报
回复
再补充一下,如果你学CPP的话,是有个auto_ptr就是'智能指针'给你选择的,用它也许会比较方便一点.
但奉劝你要学,就把指针学学好,这个是C的特色,接近低层的东西.如果你学SDK的话,楼上的晨星已经讲的很清楚了,你不用指针试试看.
在CPP中还有个referance给你提供效率帮助,而C没有,没有指针,就靠pass-by-value也是很伤神的一件事情.
robbie24 2003-08-26
  • 打赏
  • 举报
回复
晨星,呵呵,我们又见面了~
meteor135的话也未免太直接了...楼主感觉就是指针学习的时候遇到阻力,有放弃的念头了?
晨星 2003-08-26
  • 打赏
  • 举报
回复
首先,指针是一种工具,不用白不用,当然,也没人逼我们用。
其次,指针也是一种思想,C++的引用、Java的引用,STL里的迭代器,大家经常讨论的“智能指针”,Windows系统中的句柄,其最初的灵感都来自于原生指针,其功能和行为也跟指针有许多类似的地方,有的实际上就是受限的或间接的指针。其实数组的下标也可以理解为一种指针——通过一个4位的整数可以访问到一个很大的对象,这难道不是指针的功能之一吗?
meteor135 2003-08-26
  • 打赏
  • 举报
回复
这种问题怎么也拿出来问?
敢问楼主有多少C/C++的老底?
paulxj 2003-08-26
  • 打赏
  • 举报
回复
同一楼上

but结构体可以不用
六月初六 2003-08-26
  • 打赏
  • 举报
回复
他只是一个工具
就看你怎么去用了
用好了 会很方便
用不好 也是很头痛的事情
leafxx 2003-08-26
  • 打赏
  • 举报
回复
链表,结构体都要用到
BestYunnan201 2003-08-26
  • 打赏
  • 举报
回复
指针在使用前一定要先初始化!否则程序会出错!指针能给程序员编程时访问内存更大的主动性!但同时也会很危险,能用指针的地方一般都可以用引用,所以建议用引用来代替指针!
小弟也是初学,不知道说得对不对?大家多指教!一起交流一起进步!
eric8231 2003-08-26
  • 打赏
  • 举报
回复
我认为总的来说指针的优势在于底层应用上,例如TCPL中的一个例子:

IO_device* dI = reinterpret_cast<IO_device*>(0Xff00); 这里我们希望将某个整数当作一个IO设备的地址

而对于一些面向高层的应用,指针或者可以被引用取代,或者必须被引用取代(运算符重载时)。

xthink 2003-08-26
  • 打赏
  • 举报
回复
一些程序用指针可以做
不用指针也可以做

所以它是一个工具
paladinwt 2003-08-26
  • 打赏
  • 举报
回复
能用指针的地方,差不多都能用引用解决问题,用指针要小心,用不好容易出问题
xthink 2003-08-26
  • 打赏
  • 举报
回复
指针就像一个工具
一些人喜欢,一些人不喜欢

像C#就没有指针
加载更多回复(2)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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