Q's Playground

MAX MAGIC
 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(3)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • C++(15) (rss)
  • Game(1) (rss)
  • Symbian OS (rss)
  • 随便说说(5) (rss)

随笔档案

  • 2006年9月 (1)
  • 2006年7月 (1)
  • 2006年5月 (8)
  • 2006年4月 (5)
  • 2006年3月 (6)

Friends

  • lesleylyy

My Links

  • My Old Blog

搜索

  •  

最新随笔

  • 1. 转载:C++中的纯虚函数
  • 2. char ** 这个东东
  • 3. 无语
  • 4. 书啊书~~~~~~~~~~~~
  • 5. swap()引起的指针思考
  • 6. (转载)C++ sizeof 使用规则及陷阱分析
  • 7. 继续关于char *的错误
  • 8. 我的第一个windows程序
  • 9. 再次关于C风格字符串的几个小问题
  • 10. 转帖 《程序员》推荐C++ 图书三人谈

最新评论

  • 1. re: 转帖 《程序员》推荐C++ 图书三人谈
  • 评论内容较长,点击标题查看
  • --bestcbooks.com
  • 2. re: 转帖 《程序员》推荐C++ 图书三人谈
  • 评论内容较长,点击标题查看
  • --ii
  • 3. re: swap()引起的指针思考
  • 评论内容较长,点击标题查看
  • --Q
  • 4. re: 无语
  • 暑假是一个很好的学习机会~~
  • --beyonlin
  • 5. re: swap()引起的指针思考
  • 评论内容较长,点击标题查看
  • --任我行

阅读排行榜

  • 1. swap()引起的指针思考(2174)
  • 2. 转帖 《程序员》推荐C++ 图书三人谈(1593)
  • 3. memset ,memcpy 和strcpy 的根本区别?(1274)
  • 4. 转载:C++中的纯虚函数(918)
  • 5. (转载)C++ sizeof 使用规则及陷阱分析(678)

评论排行榜

  • 1. swap()引起的指针思考(11)
  • 2. 转帖 《程序员》推荐C++ 图书三人谈(2)
  • 3. 无语(1)
  • 4. char ** 这个东东(0)
  • 5. 转载:C++中的纯虚函数(0)

Powered by: 博客园
模板提供:沪江博客
| 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理
re: Git Stash用法[未登录] q 2016-08-22 17:25
@陈梓瀚(vczh)
人称轮带逛!!!
re: Windows桌面共享中一些常见的抓屏技术[未登录] Q 2013-12-02 14:43
Mirror驱动在win8上不是失效,只是默认没有安装,还是可以用的
re: 最新-基于四叉树的LOD地形设计[未登录] Q 2013-09-23 09:35
正在学习四叉树LOD,同求一份代码,多谢~~~
423322338@qq.com
re: C++文件操作[未登录] q 2012-06-26 15:03
谢谢
re: VMware虚拟机出现Reason: Failed to lock the file[未登录] q 2012-06-09 23:16
方法有效
re: 简陋的C++画图程序[未登录] q 2011-04-25 14:56
写的不错
re: TRACE改进版(静态tls在dll中使用的问题)[未登录] q 2009-11-14 15:27
这位仁兄,不错!精神可佳,支持一下.

re: Dijkstra算法[未登录] Q 2009-10-01 03:01
请问可以告诉我 INT_MAX是什么
re: [转载]一个程序员的奋斗[未登录] q 2007-07-12 18:24
看了这位老兄的东西
自叹不如,
也有很多的感慨.
祝你越走越好
re: VS.net 2003安装时反复提示重启的问题[未登录] Q 2007-04-01 13:34
谢谢
re: swap()引起的指针思考 Q 2006-05-31 23:39
我想我是明白你的意思了。其实我们说的都是一样的,swap里的int *x,*y是临时的。只要不对指针所指向的值做更改,在swap里无论怎么更改x,y的值,对于外部来说,都是徒劳的。不知道你是不是也是这个意思?
re: swap()引起的指针思考 Q 2006-05-26 15:10
任我行兄如果有兴趣的话,我们可以继续讨论 :)
方法三:
通过int *&x,int *&y
&的作用和指针一样,但是它是直接作用于实参x,y上(在本例中)
p=x;
x=y;
y=p;
这个时候在swap()中的操作其实是完全对实参x,y的操作了,也就是把外部x,y所指向的地址相互交换了一下。所以,在main()中使用*x,*y得到的结果为2,10的时候,其实使用了上面临近评论里的意思:用了个障眼法!其实这个时候在main()中的*x,*y好比之前真正的*y,*x(说白了a,b所在地址和数值完全没改变)不知道任我行兄能否理解我的意思?
re: swap()引起的指针思考 Q 2006-05-26 14:33
继续。
方法一:

p=x;
x=y;
y=p;
cout<<*x<<" "<<*y<<endl;
//得出的结果为 2,10
//那是因为x,y交换了分别指向的地址而已,所以从表面上看以为是更改了a,b地址的内容,其实什么也没变,现在的*x其实就是之前的y指向地址的实际数值,同样y也是
re: swap()引起的指针思考 Q 2006-05-26 14:23
是我没有说明白,方法一交换了地址,不过是交换了零时值而已,不会影响到外面。
---------------------------------------------------
方法一并没有交换临时数值(我说的这个临时数值不是a,b的地址,而是a,b的实际数值)。临时指针x,y可以指向任何地址,也就是说现在x指向a所在地址,等下也可以指向b所在地址,有什么关系呢?我x不解引用,不做为右值,那就不会改变a,b所在地址内的实际数值。
re: swap()引起的指针思考 Q 2006-05-26 14:19
“怎样利用swap(int *x,int *y)交换x,y指向的地址值”,也就是a,b的内存地址。

你能交换a,b的内存地址么,不能。你要交换的是x,y的值。而不是交换a,b内存的值。
--------------------------------------------------------
不明白你的意思?
但是我想说下,如果方法四中不是交换了a,b的内存值,那你看到的会是什么结果?
re: C++阅读渐进书目 Q 2006-05-26 11:39
如果我有时间,我一定要把这些书全部读完~
re: swap()引起的指针思考 Q 2006-05-26 11:25
这也就是方法四能够正确执行的原因:只要临时指针x没有解引用,没有对所指向的地址的内容进行操作,则不管x 指向哪里,以前地址里的内容仍然不会改变!
re: swap()引起的指针思考 Q 2006-05-26 11:24
to 任我行:
我说的交换地址是指 “临时指针x,y所指向的 a,b的内存地址”,并非“指针x,y的地址!”。从方法一中可以看到,临时指针x起先指向a的地址,之后改为指向b的地址,指针的特性就是可以指向任何地址,但是只要临时指针x没有解引用,没有对所指向的地址的内容进行操作,则不管x 指向哪里,以前地址里的内容仍然不会改变:a的数值仍然是以前的,b的数值也仍然是以前的。
re: 泛型算法 Q 2006-03-10 12:06
呵呵,能做个连接吧?我也是个新手,也正在看C++ Primer,希望能和你做个朋友,共同进步~~~
re: 我的博客生涯 Q 2006-03-06 13:10
呵呵,大家一起进步,我也是才接触C++没多久,其实是间断性的学的。。。呵呵