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

C語言 變量的訪問方式

提問人:劉團圓發(fā)布時間:2020-12-01

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

以下面這個程序為例,介紹這兩種訪問方式: 

main()

{

    int x;

    scanf("%d",&x);

    printf("%d",x);

}

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

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

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

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

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

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

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

    例如上例中,就可以定義一個指針變量p存儲變量x的地址,p與x的關系如圖所示。

3000

4000

變量X

20

         p

X


i


4000


20






4000

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

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

相關視頻回答
回復(0)
返回頂部