資料介紹
指針對于C來說太重要!然而,想要全面理解指針,除了要對C語言有熟練的掌握外,還要有計(jì)算機(jī)硬件以及操作系統(tǒng)等方方面面的基本知識(shí),所以本文盡可能的通過一篇文章完全講解指針。
為什么需要指針?
指針解決了一些編程中基本的問題。
第一,指針的使用使得不同區(qū)域的代碼可以輕易的共享內(nèi)存數(shù)據(jù)。
當(dāng)然小伙伴們也可以通過數(shù)據(jù)的復(fù)制達(dá)到相同的效果,但是這樣往往效率不太好。
因?yàn)橹T如結(jié)構(gòu)體等大型數(shù)據(jù),占用的字節(jié)數(shù)多,復(fù)制很消耗性能。
但使用指針就可以很好的避免這個(gè)問題,因?yàn)槿魏晤愋偷闹羔樥加玫淖止?jié)數(shù)都是一樣的(根據(jù)平臺(tái)不同,有4字節(jié)或者8字節(jié)或者其他可能)。
第二,指針使得一些復(fù)雜的鏈接性的數(shù)據(jù)結(jié)構(gòu)的構(gòu)建成為可能,比如鏈表,鏈?zhǔn)蕉鏄涞鹊取?
第三,有些操作必須使用指針。如操作申請的堆內(nèi)存。
還有:C語言中的一切函數(shù)調(diào)用中,值傳遞都是“按值傳遞”的。
如果我們要在函數(shù)中修改被傳遞過來的對象,就必須通過這個(gè)對象的指針來完成。
計(jì)算機(jī)是如何從內(nèi)存中進(jìn)行取指的?
計(jì)算機(jī)的總線可以分為3種:數(shù)據(jù)總線,地址總線和控制總線。這里不對控制總線進(jìn)行描述。
數(shù)據(jù)總線用于進(jìn)行數(shù)據(jù)信息傳送。數(shù)據(jù)總線的位數(shù)一般與CPU的字長一致。
一般而言,數(shù)據(jù)總線的位數(shù)跟當(dāng)前機(jī)器int值的長度相等。
例如在16位機(jī)器上,int的長度是16bit,32位機(jī)器則是32bit。這個(gè)計(jì)算機(jī)一條指令最多能夠讀取或者存取的數(shù)據(jù)長度。大于這個(gè)值,計(jì)算機(jī)將進(jìn)行多次訪問。
這也就是我們說的64位機(jī)器進(jìn)行64位數(shù)據(jù)運(yùn)算的效率比32位要高的原因,因?yàn)?2位機(jī)要進(jìn)行兩次取指和運(yùn)行,而64位機(jī)卻只需要一次!
地址總線專門用于尋址,CPU通過該地址進(jìn)行數(shù)據(jù)的訪問,然后把處于該地址處的數(shù)據(jù)通過數(shù)據(jù)總線進(jìn)行傳送,傳送的長度就是數(shù)據(jù)總線的位數(shù)。
地址總線的位數(shù)決定了CPU可直接尋址的內(nèi)存空間大小,比如CPU總線長32位,其最大的直接尋址空間長232KB,也就是4G。
這也就是我們常說的32位CPU最大支持的內(nèi)存上限為4G(當(dāng)然,實(shí)際上支持不到這個(gè)值,因?yàn)橐徊糠謱ぶ房臻g會(huì)被映射到外部的一些IO設(shè)備和虛擬內(nèi)存上。 現(xiàn)在通過一些新的技術(shù),可以使32位機(jī)支持4G以上內(nèi)存,但這個(gè)不在這里的討論范 圍內(nèi))。
一般而言,計(jì)算機(jī)的地址總線和數(shù)據(jù)總線的寬度是一樣的,我們說32位的CPU,數(shù)據(jù)總線和地址總線的寬度都是32位。
計(jì)算機(jī)訪問某個(gè)數(shù)據(jù)的時(shí)候,首先要通過地址總線傳送數(shù)據(jù)存儲(chǔ)或者讀取的位置,然后在通過數(shù)據(jù)總線傳送需要存儲(chǔ)或者讀取的數(shù)據(jù)。
一般地,int整型的位數(shù)等于數(shù)據(jù)總線的寬度,指針的位數(shù)等于地址總線的寬度。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- C語言程序設(shè)計(jì)第四講結(jié)構(gòu)化程序設(shè)計(jì)之選擇 0次下載
- 使用PG12864LCD設(shè)計(jì)的指針式電子鐘C語言程序免費(fèi)下載 50次下載
- MATLAB語言與C語言的區(qū)別資料下載
- 51單片機(jī)C語言應(yīng)用程序?qū)嵗?b class="flag-6" style="color: red">講的代碼合集免費(fèi)下載 211次下載
- C語言指針與指針變量的簡介和運(yùn)算實(shí)例程序免費(fèi)下載 14次下載
- C語言中的指針到底是什么?詳細(xì)資料介紹和使用代碼免費(fèi)下載
- C語言指針的三個(gè)問題的詳細(xì)資料說明
- 如何輕松理解C語言指針的詳細(xì)資料說明 11次下載
- 輕松理解C語言指針的實(shí)驗(yàn)和詳細(xì)資料說明 10次下載
- C語言教程之指針的詳細(xì)資料說明 9次下載
- C語言程序設(shè)計(jì)教程之指針使用的課件免費(fèi)下載 15次下載
- 如何學(xué)習(xí)c語言?C語言學(xué)習(xí)筆記資料免費(fèi)下載 65次下載
- C語言編程和指針的學(xué)習(xí)詳細(xì)資料概述 84次下載
- C語言的精髓——指針詳解 17次下載
- C語言指針電子教程 77次下載
- 面試中的高頻問題:指針函數(shù)與函數(shù)指針,你能完美應(yīng)對嗎? 775次閱讀
- 詳解C語言指針底層基本原理 1114次閱讀
- 什么是C語言(void*)類型 2698次閱讀
- 淺談指針常量和常量指針 946次閱讀
- 什么是void指針 1262次閱讀
- C語言中的懸空指針和野指針是什么意思? 947次閱讀
- C語言中指針的命令行參數(shù) 1036次閱讀
- C語言指針和數(shù)組的區(qū)別 1777次閱讀
- C語言指針相關(guān)的概念、語法及使用場景 1866次閱讀
- C語言中的“二級指針”該如何理解 1.2w次閱讀
- 指針和數(shù)組都是C語言的精髓所在 兩者有何聯(lián)系區(qū)別 3837次閱讀
- 嵌入式開發(fā)之C語言的指針 3128次閱讀
- 為什么C語言要引入指針_引入指針的好處是什么 2.2w次閱讀
- C語言使用中指針和內(nèi)存泄漏的問題和解決方案 4102次閱讀
- 基于C語言中指針的基本用法解析 4704次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論
查看更多