C++中函数部分怎么学习好啊!(特别是带指针和解引用的)

wl7828 2009-06-17 12:15:53
C++中函数部分怎么学习好啊!(特别是带指针和解引用的)搞的我头都大了!!

各位前辈有什么好的方法吗??请教教小弟!!!
...全文
84 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
别逗我乐 2009-06-17
  • 打赏
  • 举报
回复
没别的办法,多看,多练。

说起来很容易,但做起来,呵呵,比较难的。

祝你好运了。
liao05050075 2009-06-17
  • 打赏
  • 举报
回复
其实也没什么好说的。只能说多看几次书,然后多做一些习题。
习惯了就好。
duanhuicen 2009-06-17
  • 打赏
  • 举报
回复
你是刚学C语言吧,多用用,多看看别人的代码就知道是怎么回事儿了
zhangzhongke007 2009-06-17
  • 打赏
  • 举报
回复
也是初学者,学习了~谢谢!
lixing01 2009-06-17
  • 打赏
  • 举报
回复
对于函数的参数使用引用或者指针,我的一些理解,供参考:

首先需要知道c++里面函数调用时“参数传递”和“返回数据”的实质:

c++函数传递参数通常都是传递一份copy过去,并不传送原始数据(即实参),所以参数可以是表达式,此时计算结果后再传递。但涉及到一个传递效率的问题,对于类传递可能需要较多的时间以及内存开销,所以就采用指针或者引用的技术,指针技术传递的是地址(地址数据是很小的),引用就是别名所以函数也是直接使用原始数据。对于基础类型的数据,如int这样的就无需使用引用或指针,因为数据量小(当然你要用也可以,只是就失去了使用指针或引用解决数据复制开销大的意义)。

然后函数接收数据后如何使用,一种是修改数据,一种是不修改数据,前者用于函数本身的目的就是要改变这些数据,后者只是使用数据而不想做修改(如把数据显示出来),因此Const的技术在这儿就显得有用武之地了。

再看数据的返回,c++数据的返回通常也是返回一个COPY,如果需要直接返回函数内使用的变量,就可以定义函数的返回值是引用(此时return的数据不能是自动变量,因为会被自动销毁,返回是没有意义的),通过传入和返回的都是引用,可以实现直接修改某个值(这比复制copy传递进去,然后复制copy返回出来效率更高)

数据返回如果是const,此时限定符的含义是不能在调用函数的时候直接修改,不是调用后也一直不能修改。

当然还有使用引用的时候必须是左值,某些特殊情况编译器也能自动生成临时变量来支持,但这些是细节了,以上的参数传递和返回数据的大的4个概念要先弄清除。

我也刚学c++,以上是我得理解,供你参考哈
lixing01 2009-06-17
  • 打赏
  • 举报
回复
仔细看书,仔细理解,不放过每一句话(要真正理解其所表达的意思),把例子重敲一遍,习题昨晚。

我也初学c++,在看c++ primer plus,觉得讲得还是比较透彻的,有点地方说得简要,但意思全有了,自己理解透就行。

最后一句,保持耐心和韧性。当时不明白的地方可以跳过去,但必须下次回头再看懂。
xlttap 2009-06-17
  • 打赏
  • 举报
回复
Java去中不用指针。哈哈
xlttap 2009-06-17
  • 打赏
  • 举报
回复
看看谭浩强C++程序设计第6章。我现在就喜欢用指针,只不过管理起来比较麻烦。
如果不想麻烦,请看java2程序设计实用教程。
NirvanaVirus 2009-06-17
  • 打赏
  • 举报
回复
指针和引用有非常复杂的深奥用法,但是先可以简单地用,不要想复杂了,不然会打击你的信心~
Sou2012 2009-06-17
  • 打赏
  • 举报
回复
再看一次
mimong_lin 2009-06-17
  • 打赏
  • 举报
回复
函数没什么特别的啊,就是一个代码块,它执行了一定的功能,该功能可以被多个地方调用(利用).

函数里的指针或者引用,要么是为了传递参数时速度快些,要么就是为了向调用者返回一些操作结果.没有其它的特点了.
Allenzhuy 2009-06-17
  • 打赏
  • 举报
回复
多看书了。。。
ameyume 2009-06-17
  • 打赏
  • 举报
回复
多看多用才行,否则就是当时会了不久又忘了
woods2001 2009-06-17
  • 打赏
  • 举报
回复
跟指针相关的
建议看看 谭浩强的C语言程序设计 的第8章
  • 打赏
  • 举报
回复
继续积累,看C++ primer

65,210

社区成员

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

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