

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、56地址和指針的概念知識內容為了說清楚什么是指針,必須弄清數據在內存中是如何存儲的,又是如何讀取的。如果在程序中定義了一個變量,在對程序進行編譯時系統就會給這個變量分配內存單元。編譯系統根據程序中定義的變量類型,分配一定長度的空間。例如,一般為整型變量分配2個字節,對單精度浮點型變量分配4個字節,對字符型變量分配一個字節。內存區的每一個字節有一個編號,這就是“地址”。在地址所標識的內存單元中存放數據。務必弄清楚一個內存單元的地址與內存單元的內容這兩個概念的區別,假設程序已定義了3個整形變量i、j、k,編譯時系統分配2000和2001兩個字節給變量i,2002、2003字節給j,2004、200
2、5字節給k。在程序中一般是通過變量名來對內存單元進行存取操作的。其實程序經過編譯后已經將變量轉換為變量的地址,對變量值的存取都是通過地址進行的。假如有輸出語句:printf(“%d”,i);他是這樣執行的:根據變量名與地址的對應關系(這個對應關系是在編譯時確定的),找到變量i的地址2000,然后從由2000開始的兩個字節中取出數據(即變量的值),把它輸出。假如有輸入語句:scanf(“%d”,&i);在執行時,把從鍵盤輸入的值送到地址為2000開始的整型存儲單元中。如果有語句則從2000、2001字節取出i的值(3),再從2002、2003取出j的值(6),將它們相加后在將其和(9)送到k所占
3、用的2004、2005字節單元中。這種變量地址存取變量值的方式成為“直接訪問”方式。還可以采用另一種稱之為“間接訪問”的方式,將變量i的地址存放在另一個變量中。按C語言的規定,可以在程序中定義整型變量、實型變量、字符變量等,也可以定義這樣一種特殊的變量,它是存放地址的。假設我們定義了一個變量i_pointer,用來存放整型變量的地址,它被分配為3010、3011兩個字節。可以通過下面語句將i的地址(2000)存放到i_pointer中。i_pointer=&i;這時,i_pointer的值就是2000,即變量i所占用單元的起始地址。要存取變量i的值,也可以采用間接方式:先找到存放“i的地址”的
4、變量i_pointer,從中取出i的地址(2000),然后到2000、2001字節取出i的值(3),見圖1。 圖1打個比方,為了開一個A抽屜,有兩種方法,一種是將A鑰匙帶在身上,需要時直接找出該鑰匙打開抽屜,取出所需的東西。另一種辦法是:為安全起見,將改A鑰匙放到另一抽屜B中鎖起來。如果需要打開A抽屜,就需要先找出B鑰匙,打開B抽屜,取出A鑰匙,再打開A抽屜,取出A抽屜中的東西,這就是“間接訪問”。如圖2(a)表示直接訪問,已經知道變量i的地址,根據此地址直接對變量i的存儲單元進行存取訪問。圖2(b)表示間接訪問,先找到存放變量i地址的 變量i_pointer,從其中得到變量i的地址,再找到變
5、量i的存儲單元,然后對它進行存取訪問。 圖2為了表示將數值3送到變量中,可以有兩種表達方法:將3送到變量i所標志的單元中,見圖2(a)。將3送到變量i_pointer所指向的單元(即i所標志的單元中),見圖2(b)。所謂指向就是通過地址來體現的。假設i_pointer中的值為2000,它是變量i的地址,這樣就在i_pointer和變量i之間建立起一種聯系,即通過i_pointer能知道i的地址,從而找到變量i的內存單元。圖2中以箭頭表示這種“指向”關系。由于通過地址能找到所需的變量單元,我們可以說,地址指向該變量單元(如同說,一個房間號“指向”某一房間一樣)。因此在C語言中,將地址形象化的稱為“指針”。意思是通過它能找到以它位地址的內存單元(例如根據地址2000就能找到變量i的存儲單元,從而讀取其中的值)。一個變量的地址稱為該變量的“指針”。例如,地址2000是變量i的指針。如果有一個變量專門用來存放另一個變量的地址(即指針),則它稱為“指針變量”。上述的i_pointer就是一個指針變量。指針變量的值(即指針變量中存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 伊犁職業技術學院《兒童歌曲伴奏與彈唱》2023-2024學年第二學期期末試卷
- 山西經貿職業學院《基礎化學實驗Ⅱ》2023-2024學年第二學期期末試卷
- 寧夏銀川市名校2025年初三數學試題第一次聯合調考3月聯考試題含解析
- 南京航空航天大學金城學院《基因組與蛋白質組學》2023-2024學年第二學期期末試卷
- 西南科技大學《機場工程概論》2023-2024學年第二學期期末試卷
- 江西應用技術職業學院《跨文化交際》2023-2024學年第二學期期末試卷
- 山東石油化工學院《中國傳統文化概論》2023-2024學年第二學期期末試卷
- 銷售業務員合同書終止協議書二零二五年
- 二零二五版勞動合同與勞動保險
- 二零二五發明專利轉讓服務合同
- 惡性腫瘤的常見癥狀及早期信號
- 三年級語文 寫通知(全國一等獎)
- 2020電網技術改造工程概算定額第五冊調試工程
- 起重機機械金屬結構
- 自然教育課程的追尋與實踐
- 諾如病毒診斷和治療
- 《無人機攝影測量》考試復習題庫(含答案)
- 職業健康與環境保護的重要性
- 前置胎盤的教學查房課件
- 結構主義詩學
- 2022年初中英語新課標解讀課件
評論
0/150
提交評論