揚聲器1:原來我們可以 成功交換兩個值 通過它們傳遞到一個變量 功能不是通過值或副本,但 通過引用或通過他們的地址。 換句話說,我們需要利用 一些被稱為一個指針。 一個指針,真的,僅僅是 一些變量的地址。 所以,如果我們提供了一個調用的函數, 比如,換用的地址 一個變量和另一個地址 變量,交換應有權 去每個這些地址的 而真正改變 值的存在。 讓我們來看看這方面。 讓我們重新實現交換,如下所示。 首先,讓我們改變不會是一個int 但要成為一個指向int或 一個int的地址。 然後讓我們做相同的B,改變 它從一個int是一個指向 int或int的地址。 然後掉在裡面,讓我們仍然 聲明tmp目錄,讓我們有一個 臨時場所的價值。 但一個的值不是本身,因為 再次,一個是現在的地址 一些詮釋。 因此,如果我們想要去的地址和 得到詮釋在該地址,我們有 解引用這個指針,還按以下方式 明星接線員,寫作明星。 接下來,我不想改變 a的值。 我想改變的值 一,牢記,再一次, a是一個地址。 因此,要做到這一點,我需要再次 要說明星得到。 現在我想提出的價值 那是在B,不是b的值,這 也就是一個地址。 所以,我再次說,星級住宿。 然後在我的最後一行,我需要 覆蓋是什麼地址b與 什麼是在原來的位置。 要做到這一點,我做星級的住宿變得tmp目錄。 現在在一天結束時,這 功能還只是 三行代碼。 但因為它的操縱值 由它們的地址的方式,而不是 被傳遞到的原始值 功能,我聲稱,交換是目前 有權改變值 通過其地址傳遞。 但我需要一個改變仍然。 我再也不能在傳遞 x和y本身。 我需要通過在地址 的x和y。 而要做到這一點,我需要一些輕微 不同的符號往上頂。 我希望通過傳遞交換x和y x的地址,由表示 與符號X和地址 Y,用符號y指示。 同樣,往上頂現在,我需要 改變函數的原型 匹配我所做的改變,使 一個是,再次,一個指向int的指針。 b為,同樣,一個指向int的指針。 現在我可以挽救我的文件。 並讓我們重新編譯並運行它。 做掉點斜線交換。 並且此時,x和y是確實現在 交換使得它們的值不 1和2,但2和1。