@陳梓瀚(vczh)
人稱(chēng)輪帶逛!!!
Mirror驅(qū)動(dòng)在win8上不是失效,只是默認(rèn)沒(méi)有安裝,還是可以用的
正在學(xué)習(xí)四叉樹(shù)LOD,同求一份代碼,多謝~~~
423322338@qq.com
請(qǐng)問(wèn)可以告訴我 INT_MAX是什么
看了這位老兄的東西
自嘆不如,
也有很多的感慨.
祝你越走越好
我想我是明白你的意思了。其實(shí)我們說(shuō)的都是一樣的,swap里的int *x,*y是臨時(shí)的。只要不對(duì)指針?biāo)赶虻闹底龈模趕wap里無(wú)論怎么更改x,y的值,對(duì)于外部來(lái)說(shuō),都是徒勞的。不知道你是不是也是這個(gè)意思?
任我行兄如果有興趣的話(huà),我們可以繼續(xù)討論 :)
方法三:
通過(guò)int *&x,int *&y
&的作用和指針一樣,但是它是直接作用于實(shí)參x,y上(在本例中)
p=x;
x=y;
y=p;
這個(gè)時(shí)候在swap()中的操作其實(shí)是完全對(duì)實(shí)參x,y的操作了,也就是把外部x,y所指向的地址相互交換了一下。所以,在main()中使用*x,*y得到的結(jié)果為2,10的時(shí)候,其實(shí)使用了上面臨近評(píng)論里的意思:用了個(gè)障眼法!其實(shí)這個(gè)時(shí)候在main()中的*x,*y好比之前真正的*y,*x(說(shuō)白了a,b所在地址和數(shù)值完全沒(méi)改變)不知道任我行兄能否理解我的意思?
繼續(xù)。
方法一:
p=x;
x=y;
y=p;
cout<<*x<<" "<<*y<<endl;
//得出的結(jié)果為 2,10
//那是因?yàn)閤,y交換了分別指向的地址而已,所以從表面上看以為是更改了a,b地址的內(nèi)容,其實(shí)什么也沒(méi)變,現(xiàn)在的*x其實(shí)就是之前的y指向地址的實(shí)際數(shù)值,同樣y也是
是我沒(méi)有說(shuō)明白,方法一交換了地址,不過(guò)是交換了零時(shí)值而已,不會(huì)影響到外面。
---------------------------------------------------
方法一并沒(méi)有交換臨時(shí)數(shù)值(我說(shuō)的這個(gè)臨時(shí)數(shù)值不是a,b的地址,而是a,b的實(shí)際數(shù)值)。臨時(shí)指針x,y可以指向任何地址,也就是說(shuō)現(xiàn)在x指向a所在地址,等下也可以指向b所在地址,有什么關(guān)系呢?我x不解引用,不做為右值,那就不會(huì)改變a,b所在地址內(nèi)的實(shí)際數(shù)值。
“怎樣利用swap(int *x,int *y)交換x,y指向的地址值”,也就是a,b的內(nèi)存地址。
你能交換a,b的內(nèi)存地址么,不能。你要交換的是x,y的值。而不是交換a,b內(nèi)存的值。
--------------------------------------------------------
不明白你的意思?
但是我想說(shuō)下,如果方法四中不是交換了a,b的內(nèi)存值,那你看到的會(huì)是什么結(jié)果?
如果我有時(shí)間,我一定要把這些書(shū)全部讀完~
這也就是方法四能夠正確執(zhí)行的原因:只要臨時(shí)指針x沒(méi)有解引用,沒(méi)有對(duì)所指向的地址的內(nèi)容進(jìn)行操作,則不管x 指向哪里,以前地址里的內(nèi)容仍然不會(huì)改變!
to 任我行:
我說(shuō)的交換地址是指 “臨時(shí)指針x,y所指向的 a,b的內(nèi)存地址”,并非“指針x,y的地址!”。從方法一中可以看到,臨時(shí)指針x起先指向a的地址,之后改為指向b的地址,指針的特性就是可以指向任何地址,但是只要臨時(shí)指針x沒(méi)有解引用,沒(méi)有對(duì)所指向的地址的內(nèi)容進(jìn)行操作,則不管x 指向哪里,以前地址里的內(nèi)容仍然不會(huì)改變:a的數(shù)值仍然是以前的,b的數(shù)值也仍然是以前的。
re: 泛型算法 Q 2006-03-10 12:06
呵呵,能做個(gè)連接吧?我也是個(gè)新手,也正在看C++ Primer,希望能和你做個(gè)朋友,共同進(jìn)步~~~
re: 我的博客生涯 Q 2006-03-06 13:10
呵呵,大家一起進(jìn)步,我也是才接觸C++沒(méi)多久,其實(shí)是間斷性的學(xué)的。。。呵呵