摘要:同理在位機器下指針變量的大小也就為個字節。上文中已經提到指針變量的大小都是固定的,為何要分,或者類型呢因為指針變量只表示變量第一個字節所處的內存單元的編號,指針變量的類型決定了我們能訪問幾個字節的空間。
指針是某塊存儲空間的地址,他能通過地址找到該存儲空間儲存的內容。
32位系統控制2的32次方個內存單元,每個內存單元大小為一個字節,每個內存單元都有一個32位的二進制編號,這個編號被稱為地址。因為地址是32位二進制,所以指針變量的大小也就是4個字節。同理在64位機器下指針變量的大小也就為8個字節。
在vs下,我們通過sizeof 分別打印一下32位系統和64位系統下指針變量的大小
32位
64位
?
?
如果定義了 int char 或者float類型的變量 對他們&取地址,所得到的就是int*,char*,float*的指針變量。上文中已經提到指針變量的大小都是固定的,為何要分int*,char*,或者float*類型呢?因為指針變量只表示變量第一個字節所處的內存單元的編號,指針變量的類型決定了我們能訪問幾個字節的空間。
指針中存放了變量的地址,如果需要對指針所指向的那塊空間進行數據的讀取或者修改就需要解引用他,這就要用到*,也就是解引用操作符。具體使用如下:
?
指針的類型決定指針解引用時所訪問的空間大小,指針類型也決定了指針+1,-1能跳過幾個字節的空間,如果int *指針·+1 那么他就跳過了四個字節空間 ,char*指針+1就跳過一個字節的空間。
在函數傳參過程中,如果為傳值調用,對于一個變量所需要的內存空間很小,但是對于一個數組或者結構體所需要的內存空間就非常大了。如果我們使用指針,進行傳址調用,所需的內存空間也僅僅是4或者8個字節的大小。
談到指針和數組,我們需要先明白數組名是什么。
?數組名就是數組首元素的地址。
既然是地址我們就可以用指針來訪問數組中的元素。
?
我們通常會這樣用 arr[i] (arr表示數組 i代表下標),來訪問數組下標為i的元素 但是通過上圖,我們觀察數組中每個元素的地址,可以看出數組中每個元素的存儲都是連續的。既然是連續的,我們就可以通過arr加減數字來表示后面元素的地址,再對其解引用訪問數組的元素。
?通過觀察,可以確定這樣的方式是完全正確的。
?我們可以得出這樣一個結論??? arr[i]=*(arr+i)
如果把i和arr 交換一下?
再觀察一下上圖? *(i+arr)=i[arr]
最終我們得出?arr[i]=*(arr+i)=*(i+arr)=i[arr]
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119814.html
摘要:廣告位出售垃圾回收機制淺析與理解對垃圾回收進行分析前,我們先來了解一些基本概念基本概念內存管理內存管理對于編程語言至關重要。里面的變量通常是局部變量函數參數等。 GC(@廣告位出售)垃圾回收機制: 淺析與理解 對垃圾回收進行分析前,我們先來了解一些基本概念 基本概念 內存管理:內存管理對于編程語言至關重要。匯編允許你操作所有東西,或者說要求你必須全權處理所有細節更合適。C 語言中雖然...
摘要:廣告位出售垃圾回收機制淺析與理解對垃圾回收進行分析前,我們先來了解一些基本概念基本概念內存管理內存管理對于編程語言至關重要。里面的變量通常是局部變量函數參數等。 GC(@廣告位出售)垃圾回收機制: 淺析與理解 對垃圾回收進行分析前,我們先來了解一些基本概念 基本概念 內存管理:內存管理對于編程語言至關重要。匯編允許你操作所有東西,或者說要求你必須全權處理所有細節更合適。C 語言中雖然...
摘要:繼承方式繼承方式限定了基類成員在派生類中的訪問權限,包括公有的私有的和受保護的。所以子類給父類引用賦值也是可以的,相當于給子類對象中繼承的父類部分起了別名。如圖成員函數也是如此,當子類與父類具有函數名相同的函數時,還是符合就近原則。 ...
摘要:寫在前面博客主頁的江湖背景的江湖背景歡迎關注點贊收藏留言本文由原創,首發首發時間年月日最新更新時間年月日堅持和努力一定能換來詩與遠方向未見花聞學習參考書籍深入理解計算機系統作者水平很有限,如果發現錯誤,請留言轟炸哦萬分感謝感謝感謝 ?寫在前面 ?博客主頁:kikoking的江湖背景?...
閱讀 2544·2021-11-24 10:20
閱讀 2392·2021-09-10 10:51
閱讀 3381·2021-09-06 15:02
閱讀 3114·2019-08-30 15:55
閱讀 2841·2019-08-29 18:34
閱讀 3079·2019-08-29 12:14
閱讀 1218·2019-08-26 13:53
閱讀 2931·2019-08-26 13:43