<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            C 語言內存地址基礎知識

            時間:2025-04-29 15:10:54 C語言 我要投稿
            • 相關推薦

            C 語言內存地址基礎知識

              內存不一定連續,也不一定按順序處理。下面小編給大家介紹C 語言內存地址基礎,歡迎閱讀!

            C 語言內存地址基礎知識

              從計算機內存的角度思考C語言中的一切東東,是挺有幫助的。我們可以把計算機內存想象成一個字節數組,內存中每一個地址表示 1 字節。比方說我們的電腦有 4K 內存,那這個內存數組將會有 4096 個元素。當我們談論一個存儲地址的指針時,就當相于我們在談論一個存儲著該內存數組某個元素索引的指針。逆向引用某個指針,將會得到數組中該索引所指向的值。這一切當然都是謊言。操作系統對內存的管理要遠比這復雜。內存不一定連續,也不一定按順序處理。但前面的類比是一種討論C語言內存的簡單方式。

              如果對『指針』、『地址』和『逆向引用』感到混亂,請看《C語言指針5分鐘教程》(發送 指針,可看全文)。// 譯注:“dereferencing” 的譯法比較多,本文采用了“逆向引用”。

              假設我們的計算機有 4K 的內存,下一個開放地址的索引是2048。我們聲明一個新的字符變量i='a'。當該變量所獲得的內存放置了它的值,變量的名字也與內存中的該位置關聯,我們的字符i就獲得了一個存儲在2048位置的值。該字符是單字節的因此它只占用了索引為 2048 的位置。如果我們對 i 變量使用地址操作符(&),它將返回到索引為2048的位置。如果這個變量是另一種類型,比如是 int,它將占用4字節,在數組中占用索引為 2048-2051 的位置。使用地址操作符仍將返回索引2048的位置,因為 int 型即便占用了 4 字節,但它開始于 2048 位置。我們看一個例子:

              // intialize a char variable, print its address and the next address

              char charvar = '

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院