存錢筒-線上日文教室
關於部落格
五十音不等於我們的注音
  • 44938

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

C/C++ 指標不難. (一)

今天呢,無聊想到了一個以前學C語言時搞得自己焦頭爛耳的東西

記得呢....那是在我國三那年,當時對電腦有興趣,就開始接觸寫程式
不過那時還有很多書要念,也只會寫些加加減減的東西,雖然是這樣講.... 最簡單的那隻Hello world程式各位猜我寫了多久?

各位應該不會比我久,我寫了二個星期,原因有很多,最大的原因就是我太笨了

我一直這樣學,到了高一才進到指標的部份(又笨又慢...你看看...唉)
各位對指標學習有困難的朋友,不妨看過來....讓我和你分享一些學習小技巧

這類網誌我打算寫它個幾篇,其中包含Java的指標,如果你認為Java沒有指標,那麼你就錯了,Java不止 「Write once , run everywhere」,在Java內部裡,指標是「Write everywhere, run everywhere」,只是....它是一個看得見又看不見的東西(謎之音: 你遊戲王看太多了~轟~)


C語言裡的指標是這樣宣告的 ,例如我宣告一個int 型態的指標
int *i;
如果你要給這個*i值,這個 *i  只能接受前面有&的變數,例如
int a=100;
i=&a;

這是鐵則,亂寫是會錯的,這裡不談書上那一套,什麼&代表位址那些就不說了,因為&這個符號不止可以用來給指標位址,他還有另一個用途

那它和下面這個有什麼不一樣
int i ;
int a=100;
i=a;

底下講解,我把上例程式有指標那個稱做(1) , 沒有的叫(2)
在(1)裡,如果我們事後對*i做了加1 ,那麼a的值也會加1 (即變成101),此時*i 和 a二者的值一樣

但在(2) ,如果我對i加1 ,i的值就會變成101 ,但a的值還是100,原因是因為(2)裡的a當初在給i值的時候只是copy一份相同的值過去,所以i 怎麼變和a沒有關係

相簿設定
標籤設定
相簿狀態