C語言內(nèi)存地址基礎(chǔ)
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。下面是小編整理的C語言內(nèi)存地址基礎(chǔ),希望對(duì)大家有幫助!
從計(jì)算機(jī)內(nèi)存的角度思考C語言中的一切東東,是挺有幫助的。我們可以把計(jì)算機(jī)內(nèi)存想象成一個(gè)字節(jié)數(shù)組,內(nèi)存中每一個(gè)地址表示 1 字節(jié)。比方說我們的電腦有 4K 內(nèi)存,那這個(gè)內(nèi)存數(shù)組將會(huì)有 4096 個(gè)元素。當(dāng)我們談?wù)撘粋(gè)存儲(chǔ)地址的指針時(shí),就當(dāng)相于我們?cè)谡務(wù)撘粋(gè)存儲(chǔ)著該內(nèi)存數(shù)組某個(gè)元素索引的指針。逆向引用某個(gè)指針,將會(huì)得到數(shù)組中該索引所指向的值。這一切當(dāng)然都是謊言。操作系統(tǒng)對(duì)內(nèi)存的管理要遠(yuǎn)比這復(fù)雜。內(nèi)存不一定連續(xù),也不一定按順序處理。但前面的類比是一種討論C語言內(nèi)存的簡(jiǎn)單方式。
假設(shè)我們的計(jì)算機(jī)有 4K 的內(nèi)存,下一個(gè)開放地址的索引是2048。我們聲明一個(gè)新的字符變量i='a'。當(dāng)該變量所獲得的內(nèi)存放置了它的值,變量的名字也與內(nèi)存中的該位置關(guān)聯(lián),我們的字符i就獲得了一個(gè)存儲(chǔ)在2048位置的值。該字符是單字節(jié)的因此它只占用了索引為 2048 的位置。如果我們對(duì) i 變量使用地址操作符(&),它將返回到索引為2048的位置。如果這個(gè)變量是另一種類型,比如是 int,它將占用4字節(jié),在數(shù)組中占用索引為 2048-2051 的位置。使用地址操作符仍將返回索引2048的位置,因?yàn)?int 型即便占用了 4 字節(jié),但它開始于 2048 位置。我們看一個(gè)例子:
// intialize a char variable, print its address and the next address
char charvar = ' 主站蜘蛛池模板: 商南县| 德令哈市| 鹿邑县| 和林格尔县| 桐柏县| 通江县| 南皮县| 湖州市| 保靖县| 黔南| 金川县| 台北市| 九龙县| 蒙自县| 宝坻区| 喜德县| 固阳县| 商河县| 彰化市| 盈江县| 陈巴尔虎旗| 兴安县| 庆安县| 霍州市| 梅河口市| 永年县| 永春县| 如皋市| 东乌珠穆沁旗| 竹山县| 汤阴县| 建宁县| 康马县| 新宾| 棋牌| 牟定县| 浮梁县| 铜鼓县| 富裕县| 昆明市| 永吉县|