Mirror驅動在win8上不是失效,只是默認沒有安裝,還是可以用的
正在學習四叉樹LOD,同求一份代碼,多謝~~~
423322338@qq.com
re: C++文件操作[未登錄] q 2012-06-26 15:03
謝謝
re: 簡陋的C++畫圖程序[未登錄] q 2011-04-25 14:56
寫的不錯
re: Dijkstra算法[未登錄] Q 2009-10-01 03:01
請問可以告訴我 INT_MAX是什么
看了這位老兄的東西
自嘆不如,
也有很多的感慨.
祝你越走越好
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++沒多久,其實是間斷性的學的。。。呵呵