成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

1000字理解C語言中的指針

MonoLog / 2395人閱讀

摘要:同理在位機器下指針變量的大小也就為個字節(jié)。上文中已經(jīng)提到指針變量的大小都是固定的,為何要分,或者類型呢因為指針變量只表示變量第一個字節(jié)所處的內(nèi)存單元的編號,指針變量的類型決定了我們能訪問幾個字節(jié)的空間。

指針的定義及大小

指針是某塊存儲空間的地址,他能通過地址找到該存儲空間儲存的內(nèi)容。

32位系統(tǒng)控制2的32次方個內(nèi)存單元,每個內(nèi)存單元大小為一個字節(jié),每個內(nèi)存單元都有一個32位的二進制編號,這個編號被稱為地址。因為地址是32位二進制,所以指針變量的大小也就是4個字節(jié)。同理在64位機器下指針變量的大小也就為8個字節(jié)。

在vs下,我們通過sizeof 分別打印一下32位系統(tǒng)和64位系統(tǒng)下指針變量的大小

32位

64位

?

?

指針的類型

如果定義了 int char 或者float類型的變量 對他們&取地址,所得到的就是int*,char*,float*的指針變量。上文中已經(jīng)提到指針變量的大小都是固定的,為何要分int*,char*,或者float*類型呢?因為指針變量只表示變量第一個字節(jié)所處的內(nèi)存單元的編號,指針變量的類型決定了我們能訪問幾個字節(jié)的空間。

指針的解引用

指針中存放了變量的地址,如果需要對指針所指向的那塊空間進行數(shù)據(jù)的讀取或者修改就需要解引用他,這就要用到*,也就是解引用操作符。具體使用如下:

?

指針加減數(shù)字

指針的類型決定指針解引用時所訪問的空間大小,指針類型也決定了指針+1,-1能跳過幾個字節(jié)的空間,如果int *指針·+1 那么他就跳過了四個字節(jié)空間 ,char*指針+1就跳過一個字節(jié)的空間。

指針的作用

在函數(shù)傳參過程中,如果為傳值調(diào)用,對于一個變量所需要的內(nèi)存空間很小,但是對于一個數(shù)組或者結構體所需要的內(nèi)存空間就非常大了。如果我們使用指針,進行傳址調(diào)用,所需的內(nèi)存空間也僅僅是4或者8個字節(jié)的大小。

指針與數(shù)組

談到指針和數(shù)組,我們需要先明白數(shù)組名是什么。

?數(shù)組名就是數(shù)組首元素的地址。

既然是地址我們就可以用指針來訪問數(shù)組中的元素。

?

我們通常會這樣用 arr[i] (arr表示數(shù)組 i代表下標),來訪問數(shù)組下標為i的元素 但是通過上圖,我們觀察數(shù)組中每個元素的地址,可以看出數(shù)組中每個元素的存儲都是連續(xù)的。既然是連續(xù)的,我們就可以通過arr加減數(shù)字來表示后面元素的地址,再對其解引用訪問數(shù)組的元素。

?通過觀察,可以確定這樣的方式是完全正確的。

?我們可以得出這樣一個結論??? arr[i]=*(arr+i)

如果把i和arr 交換一下?

*(i+arr)=i[arr] ?

再觀察一下上圖? *(i+arr)=i[arr]

最終我們得出?arr[i]=*(arr+i)=*(i+arr)=i[arr]

?

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/119814.html

相關文章

  • GC(@廣告位出售)垃圾回收機制: 淺析與理解

    摘要:廣告位出售垃圾回收機制淺析與理解對垃圾回收進行分析前,我們先來了解一些基本概念基本概念內(nèi)存管理內(nèi)存管理對于編程語言至關重要。里面的變量通常是局部變量函數(shù)參數(shù)等。 GC(@廣告位出售)垃圾回收機制: 淺析與理解 對垃圾回收進行分析前,我們先來了解一些基本概念 基本概念 內(nèi)存管理:內(nèi)存管理對于編程語言至關重要。匯編允許你操作所有東西,或者說要求你必須全權處理所有細節(jié)更合適。C 語言中雖然...

    songjz 評論0 收藏0
  • GC(@廣告位出售)垃圾回收機制: 淺析與理解

    摘要:廣告位出售垃圾回收機制淺析與理解對垃圾回收進行分析前,我們先來了解一些基本概念基本概念內(nèi)存管理內(nèi)存管理對于編程語言至關重要。里面的變量通常是局部變量函數(shù)參數(shù)等。 GC(@廣告位出售)垃圾回收機制: 淺析與理解 對垃圾回收進行分析前,我們先來了解一些基本概念 基本概念 內(nèi)存管理:內(nèi)存管理對于編程語言至關重要。匯編允許你操作所有東西,或者說要求你必須全權處理所有細節(jié)更合適。C 語言中雖然...

    xioqua 評論0 收藏0
  • C++基礎語法(五)繼承——萬總結,干貨滿滿

    摘要:繼承方式繼承方式限定了基類成員在派生類中的訪問權限,包括公有的私有的和受保護的。所以子類給父類引用賦值也是可以的,相當于給子類對象中繼承的父類部分起了別名。如圖成員函數(shù)也是如此,當子類與父類具有函數(shù)名相同的函數(shù)時,還是符合就近原則。 ...

    smartlion 評論0 收藏0
  • 《深入理解計算機系統(tǒng)》·深入淺出·快速理解第2章(3日完稿)

    摘要:寫在前面博客主頁的江湖背景的江湖背景歡迎關注點贊收藏留言本文由原創(chuàng),首發(fā)首發(fā)時間年月日最新更新時間年月日堅持和努力一定能換來詩與遠方向未見花聞學習參考書籍深入理解計算機系統(tǒng)作者水平很有限,如果發(fā)現(xiàn)錯誤,請留言轟炸哦萬分感謝感謝感謝 ?寫在前面 ?博客主頁:kikoking的江湖背景?...

    YJNldm 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<