中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中指針有什么用

發布時間:2022-03-04 09:48:08 來源:億速云 閱讀:167 作者:小新 欄目:開發技術

這篇文章主要介紹C語言中指針有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

(壹)  敢問指針為何物 

1.1  指針的概念

在計算機科學中,指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。由于通過地址能找到所需的變量單元,可以說,地址指向該變量單元。因此,將地址形象化的稱為“指針”。意思是通過它能找到以它為地址的內存單元。

C語言中指針有什么用

那我們就可以這樣理解  --》 指針是個變量,存放內存單元的地址(編號)。

C語言中指針有什么用

總結:指針就是變量,用來存放地址的變量。(存放在指針中的值都被當成地址處理)。

1.2  指針的背后

經過仔細的計算和權衡我們發現一個字節給一個對應的地址是比較合適的。

對于 32位 的機器,假設有 32根地址線 ,那么假設每根地址線在尋址的是產生一個電信號正電/負電(1或者0)

C語言中指針有什么用

 這里就有2的32次方個地址。     

C語言中指針有什么用

這里我們就明白:

  • 在32位的機器上,地址是32個0或者1組成二進制序列,那地址就得用4個字節的空間來存儲,所以一個指針變量的大小就應該是4個字節。

  • 那如果在64位機器上,如果有64個地址線,那一個指針變量的大小是8個字節,才能存放一個地址。

  • 指針是用來存放地址的,地址是唯一標示一塊地址空間的。

  • 指針的大小在32位平臺是4個字節,在64位平臺是8個字節。

C語言中指針有什么用

(貳)  指針和指針類

2.1  指針的類型

這里我們在討論一下:指針的類型 我們都知道,變量有不同的類型,整形,浮點型等。那指針有沒有類型呢? 準確的說:有的。

當有這樣的代碼:

C語言中指針有什么用

要將&num(num的地址)保存到p中,我們知道p就是一個指針變量,那它的類型是怎樣的呢? 我們給指針變量相應的類型。 

C語言中指針有什么用

這里可以看到,指針的定義方式是:type + *。 其實: char*類型的指針是為了存放 char 類型變量的地址。 short* 類型的指針是為了存放 short 類型變量的地址。 int*類型的指針是為了存放int 類型變量的地址。

2.2  指針類型的意義

如下圖所例:使用char*是可以存放int類型的地址的(都是四個字節),但真的有怎么簡單嗎?

C語言中指針有什么用

我們來對比一組操作:

C語言中指針有什么用

C語言中指針有什么用

 我們可以看到,賦值后的a只改變的一個字節的大小

C語言中指針有什么用

 綜上,我們可以得出以下結論:

  • 指針類型決定了指針解引用操作的時候,一次訪問幾個字節(即訪問內存的大小)

  • 指針的類型決定了指針向前或者向后走一步有多大(距離)。

  • 決定了 指針 +- 整數的步長

大家有興趣的話也可以去分析以下代碼,加深對于指針類型的理解 

C語言中指針有什么用

2.3  指針的解引用

C語言中指針有什么用

這個代碼的實現就交給大家自己去調試啦???

總結: 指針的類型決定了,對指針解引用的時候有多大的權限(能操作幾個字節)。 比如:char*的指針解引用就只能訪問一個字節,而int*的指針的解引用就能訪問四個字節。

以上是“C語言中指針有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武强县| 库尔勒市| 许昌市| 永定县| 南阳市| 泌阳县| 固阳县| 托里县| 通许县| 永登县| 曲水县| 通辽市| 文成县| 中山市| 中方县| 田林县| 恩施市| 宜兴市| 彝良县| 双柏县| 融水| 泽州县| 娄烦县| 桐乡市| 萨嘎县| 剑川县| 丹江口市| 崇文区| 额敏县| 潜江市| 新巴尔虎右旗| 清水河县| 义乌市| 伊川县| 休宁县| 新竹市| 肥东县| 沾益县| 南皮县| 嘉鱼县| 潮安县|