6 1指標的概念?

2022-08-20 14:33:15 字數 1339 閱讀 5669

如果乙個程式中定義乙個變數,在編譯時就給這個變數分配記憶體單元。系統根據程式中的定義的變數型別,分配一定的長度空間。vc c++ 6.0中,乙個整型變數分配4個位元組,微單精度浮點數變數分配4個位元組,為字元型變數分配1個位元組。記憶體區的每乙個位元組有乙個編號,這個就是「位址」,它相當於旅館中的房間號。在位址所標識的記憶體單元中存放資料,這相當於旅館中各個房間中居住的旅客一樣。

乙個   記憶體單元的位址   與  記憶體單元的內容  的區別?

假設程式中定義了3個整型變數 i, j,k,編譯時系統分配2000,2001,2002,2003這4個位元組給變數 i;

分配2004,2005,2006和2007位元組給 j ;  分配2008,2009,2010,1011位元組給k;

在程式中一般是通過變數名來對記憶體單元進行訪問操作的。

其實經過編譯以後已經將變數名轉換為變數的位址,對變數值得訪問都是通過位址進行的。

例如:語句"cout《根據變數名與位址的對應的關係(這個對應的關係是在編譯的時確定的),找到變數i的位址2000,然後從由2000開始的4個位元組中取出資料(即變數的值3),把他輸出。輸入的時候,如果用"cin>>i;",在執行時,就把從鍵盤輸入的值,送到位址為2000開始的整型儲存單元中。

如果有語句「k=i+j;」,則是從2000位元組開始的整型變數儲存單元中取出i的值(圖中的值為3),從2004位元組開始的變數儲存單元中取出j的值(值為6),將他們相加以後在將其(9)送到k所占用的2008位元組開始的整型儲存單元中。這種按變數位址訪問變數值得方式稱為直接訪問方式,或直接訪問方式。

當然可以採用另外一種方式間接訪問(間接訪問)的方式,將變數 i 的位址存放在另外乙個變數中。可以在程式中定義這樣一種特殊的變數,他是專門用來存放位址的。假設第乙個變數i_pointer,用來存放乙個整型變數的位址。編譯系統給這個變數分配4個位元組(假定為3010至3013)3010,3011,3012,3013.

i_pointer=&i; 執行此句後,i_pointer的值就是2000(即變數i所占用單元的起始位址)。若要取變數 i 的值,除了可以用直接方式外,還可以採用間接方式:先找到存放" i 的位址"的變數 i_pointer ,從中取出 i 的位址(即2000),然後到2000開始的4個位元組中取出 i 的值(3)。

打乙個比方吧。為了開乙個a抽屜,有2種方法,一種是將 a 鑰匙帶在身上,需要時直接找出該鑰匙開啟a抽屜,取出所需的物品。 另外一種方法:為了安全起見,將該a鑰匙放在另外乙個抽屜b種鎖起來。如果需要開啟a抽屜,需要先找到b抽屜,開啟b抽屜,取出a鑰匙,在開啟a抽屜,取出a抽屜中之物,這就是間接訪問

6 1 指標的概念

為了說清楚什麼是指標,必須弄清楚資料在記憶體中是如何儲存的,又是如何讀取的。如果在程式中定義了乙個變數,在編譯時就給這個變數分配記憶體單元。系統根據程式中定義的變數型別,分配一定長度的空間。例如,c 編譯系統一般為整型變數分配4個位元組,為單精度浮點型變數分配4個位元組,為字元型變數分配1個位元組。...

27 指標的概念

本節知識點 1 指標的基本概念 2 使用指標的好處 3 變數的訪問方式 1 指標的基本概念 在計算機中,所有的資料都是存放在儲存器中的。一般把儲存器中的乙個位元組稱為乙個記憶體單元,不同的資料型別所占用的記憶體單元數不等,如整型量佔4個單元,字元量佔1個單元等。為了正確地訪問這些記憶體單元,必須為每...

指標(三) 指標陣列

指標陣列定義 一維指標陣列的定義形式 型別名 陣列名 陣列長度 char p 5 乙個陣列,若其元素均為指標型別資料,稱為指標陣列,指標陣列中的每乙個元素都相當於乙個指標變數。指標陣列的初始化 使用位址為指標陣列初始化 char p 5 指標陣列和二級指標 int main char temp 定義...