C 控制代碼與指標的區別

2021-08-25 20:37:02 字數 553 閱讀 2022

學習c++的人都知道控制代碼和指標,而且我發現很多人在控制代碼與指標之間直接劃等號,對我們來說兩者都是位址,我覺的這也造成很多人將控制代碼和指標劃等號的直接原因。

首先說指標吧。通俗一點就是位址,他是記憶體的編號,通過它我們可以直接對記憶體進行操作,只要位址不變,我們每次操作的物理位置是絕對不變,記住這句話,這是控制代碼和指標的重大區別所在。

再說說控制代碼吧,一般是指向系統的資源的位置,可以說也是位址。但是這些資源的位置真的不變,我們都知道window支援虛擬記憶體的技術,同一時間內可能有些資源被換出記憶體,一些被換回來,這就是說同一資源在系統的不同時刻,他在記憶體的物理位置是不確定的,那麼window是如何解決這個問題呢,就是通過控制代碼來處理資源的物理位置不斷變化的這個問題的。window會在物理位置固定的區域儲存一張對應表,表中記錄了所有的資源實時位址,控制代碼其實沒有直接指向資源的實體地址,而是指向了這個對應表中的一項,這樣無論資源怎樣的換進換出,通過控制代碼都可以找到他的實時位置。

總的來說,通過控制代碼可以遮蔽系統內部的細節,讓程式設計可以不必考慮作業系統實現的細節。如果還不能理解控制代碼與指標之間的區別,可以想象指向指標的指標,可以把控制代碼當作乙個指向指標的指標來理解。

指標與控制代碼的區別

指標與控制代碼的區別 1 什麼是控制代碼?控制代碼在windows程式設計中是乙個很重要的概念,在很多程式中都扮演者重要的角色。在windows環境中,控制代碼是用來標識專案的,這些專案包括 模組,任務,例項,檔案,記憶體塊,選單,控制,字型,資源 包括圖示,游標,字串等 gdi物件 包括位圖,畫刷...

控制代碼與指標的區別

控制代碼實際上是一種指向某種資源的指標,但與指標又有所不同 指標對應著乙個資料在記憶體中的位址,得到了指標就可以自由地修改該資料。windows並不希望一般程式修改其內部資料結構,因為這樣太不安全。所以windows給每個使用globalalloc等函式宣告的記憶體區域指定乙個控制代碼 本質上仍是乙...

指標與控制代碼的區別

最近兩天在複習一些c 的知識,中間發現了許多以前沒有注意過的問題。關於控制代碼以前總是將其理解為指標,其實不然,他們之間有著明顯的區別。首先,指標指向系統中物理記憶體的位址,而控制代碼是windows在記憶體中維護的乙個物件記憶體實體地址列表的整數索引,控制代碼是一種指向指標的指標。在windows...