亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

C語言

C 語言內(nèi)存地址基礎(chǔ)知識

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

C 語言內(nèi)存地址基礎(chǔ)知識

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

C 語言內(nèi)存地址基礎(chǔ)知識

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

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

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

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

  char charvar = '