位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 變量的訪問(wèn)方式

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01

對(duì)變量的訪問(wèn)實(shí)際上要轉(zhuǎn)換為對(duì)內(nèi)存地址的訪問(wèn)。C語(yǔ)言中對(duì)變量的訪問(wèn)有兩種形式,直接訪問(wèn)方式和間接訪問(wèn)方式。

以下面這個(gè)程序?yàn)槔?,介紹這兩種訪問(wèn)方式: 

main()

{

    int x;

    scanf("%d",&x);

    printf("%d",x);

}

(1)直接訪問(wèn):直接利用變量名檢索得到變量的地址,對(duì)變量進(jìn)行存取。

    上例中scanf("%du,&x)的執(zhí)行過(guò)程是這樣的:用變量名x去檢索內(nèi)存分配表,查找變量x所在的內(nèi)存地址(假設(shè)為4000 )。找到后,將從鍵盤上輸入的值(如20 )送入到變量x的起始地址4000中。此時(shí),變置x在內(nèi)存中的地址和值如圖所示。

(2)間接訪問(wèn):通過(guò)另一變量訪問(wèn)該變量的值。

    間接訪問(wèn)一個(gè)變量可以描述為這樣一個(gè)過(guò)程:李四想去張三的家里找張三,但他不知道張三家住在哪里。不過(guò)王五知道,李四可以打電話給王五,得到張三家的地址后,再去張三家找到張三。

    再比如,張三告訴李四,請(qǐng)你從我的第一個(gè)抽屜中找一份資料,但是要打開第一個(gè)抽屜,必須從第二個(gè)抽屜中找到鑰匙。

    這兩個(gè)例子都是表明這樣一種情況:一個(gè)變量p中存儲(chǔ)著另外一個(gè)變量x的地址,要訪問(wèn)變量x,必須先訪問(wèn)變量P。

    C語(yǔ)言規(guī)定,在程序中可以定義一種特殊的變量(稱為指針變量),用來(lái)存放其他變量的地址。

    例如上例中,就可以定義一個(gè)指針變量p存儲(chǔ)變量x的地址,p與x的關(guān)系如圖所示。

3000

4000

變量X

20

         p

X


i


4000


20






4000

從圖中可以看出,變量x的地址為4000, x中的值為20;指針變量p的地址為3000, p指向X。也就是說(shuō),指針變量p的內(nèi)存單元中存儲(chǔ)著變量x的地址。即指針變量p的值為x的地址(4000 )。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部