我們在學習函式時,老師會說傳進函式的實參值不會改變,如果想要改變,可以傳遞指標,通過指標改變實參值。那如果我想改變指標的值呢,我們需要向該函式傳遞指標的指標,即二級指標。
題7就體現了這種思想。
如題,結果為 1 3 1 1,原本指向b的q卻似乎指向了a,為什麼呢,讓我們來看swap函式,進入函式如圖1,3行**執行之後,結果如234。最終q指向了a。通過二級指標成功的改變了一級指標的值,即讓指標的指向改變。
那麼,為什麼我們需要這樣做的呢?
回到最初老師的課堂,老師一定說過,是實參到形參是值傳遞,我理解為函式的形參是實參值的拷貝,那麼對於拷貝無論怎麼操作都不會影響原來的實參。而指標實現了位址傳遞,使我們直接通過位址改變實參的值。但是指標傳遞時也是進行了拷貝。
提到指標傳遞,就想到另乙個很容易迷糊的問題,陣列名是指標嗎?我之前一直理解為陣列名即指標,但並不準確,陣列名是乙個指標常量,不能作為左值。陣列作為實參不能將其全部資料拷貝,只能將其首位址,即陣列名拷貝,所以在傳遞時陣列退化為指標。
回到最初的,我一直疑惑的問題,為什麼實參不會改變,為什麼陣列退化為指標,都因為函式的形參是實參的拷貝,而陣列無法被完全拷貝,則拷貝了其首位址。
面試題彙總 2016
1.關於以下 段的說法正確的是 d 1 string s abcde 2 string buffer s1 new string buffer abcde 3 if s.equals s1 4 s1 null 5 if s1.equals s 6 s null a 第 1 行編譯錯誤,string的...
出門問問面試題2016
1.證人所說的顏色 正確率80 真實顏色 綠色 輛 紅色 輛 合計綠色 85 1700 紅色 15 300合計 輛 2000 2 試問 肇事的認定對紅色計程車公平嗎?請說明理由 答案 1 證人所說的顏色 正確率80 真實顏色 綠色 輛 紅色 輛 合計綠色 85 1360 3401700 紅色 15 ...
面試題 資料探勘型別的面試題
今天看到一道有趣的面試題,但是沒有分析出來結果,發出來大家一起看看,希望大家集思廣益得出乙個合理的答案。某 7月份共訪問使用者數4100人,已知訪問 有兩種登陸方式a 和b 使用a登陸的7月份總使用者數為2835,使用b方式登陸的7月份總使用者數為1400,既使用過a又使用過b登陸的7月份總使用者數...