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





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論