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

C語言 變量的訪問方式

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

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

以下面這個(gè)程序?yàn)槔榻B這兩種訪問方式: 

main()

{

    int x;

    scanf("%d",&x);

    printf("%d",x);

}

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

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

(2)間接訪問:通過另一變量訪問該變量的值。

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

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

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

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

    例如上例中,就可以定義一個(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。也就是說,指針變量p的內(nèi)存單元中存儲(chǔ)著變量x的地址。即指針變量p的值為x的地址(4000 )。

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

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