成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#數組和指針全面討論

開發 后端
這里介紹C#數組和C#指針在編譯器處理時是不同的,在運行時的表示形式也是不一樣的。對編譯器而言,一個數組就是一個地址,一個指針就是一個地址的地址,你應該根據情況做出選擇。

C#有很多值得學習的地方,這里我們主要介紹C#數組和C#指針,包括介紹為什么C#語言把數組形參當作指針等方面。

什么時候C#數組和C#指針相同

所有作為函數參數的數組名總是可以通過編譯器轉換為指針。在其他所有情況下,數組的聲明就是數組,指針的聲明就是指針,兩者不能混淆。但在語句或表達式中引用時,數組總是可以寫成指針的形式,兩者可以互換。然而,C#數組和C#指針在編譯器處理時是不同的,在運行時的表示形式也是不一樣的。對編譯器而言,一個數組就是一個地址,一個指針就是一個地址的地址,你應該根據情況做出選擇。

為什么會發生混淆

當人們學習編程時,一開始總是把所有的代碼都放到一個函數里。隨著水平的進步,他們把代碼分別放在幾個函數中。在水平繼續提高后,他們最終學會了如何用幾個文件來構造一個程序。

什么時候C#數組和C#指針是相同的?C#語言標準對此作了如下說明:
規則1 表達式中的數組名(與聲明不同)被編譯器當作一個指向該數組***個元素的指針。
規則2 下標總是與指針的偏移量相同。
規則3 在函數參數的聲明中,數組名被編譯器當作指向該數組的***個元素的指針。

規則1:“表達式中的數組名”就是指針

規則1和2合在一起理解,就是對數組下標的引用總是可以寫成“一個指向數組的起始地址的指針加上偏移量。”(個人認為,表述為“一個指向該數組***個元素的指針加上偏移量”更明確。)

對數組的引用如a[i]在編譯時總是被編譯器改寫成*(a+i)的形式。C#語言標準要求編譯器必須具備這個概念性的行為。于是,a[6]和6[a]都是正確的。

編譯器自動把下標值的步長調整到數組元素的大小。這就是為什么指針總是有類型限制,每個指針只能指向一種類型的原因,因為編譯器需要知道對指針進行解除引用操作時應取幾個字節,以及每個下標的步長應取幾個字節。

規則2:C#語言把數組下標作為指針的偏移量

事實上,下標范圍檢測被認為并不值得加入到C#語言中。數組下標是定義在指針的基礎上的,所以優化器常常可以把它轉換為更有效率的指針表達式,并生成相同的機器指令。C#語言把數組下標改寫成指針偏移量的根本原因是指針和偏移量是底層硬件所使用的基本模型。

為什么C#語言把數組形參當作指針

之所以要把傳遞給函數的數組參數轉換為指針是出于效率的考慮,這個理由常常也是對違反軟件工程做法的辯解。我們傾向于始終把參數定義為指針,因為這是編譯器內部所使用的形式。以上介紹C#數組和C#指針。

【編輯推薦】

  1. C#數組操作的體會淺談
  2. 全面介紹C#指針操作
  3. C#數組初始化的應用實例解析
  4. C#指針使用簡析
  5. 淺談C#數組工作方式
責任編輯:佚名 來源: 51CTO.com
相關推薦

2009-08-03 17:12:40

C#指針操作

2009-09-27 11:14:09

C#數組

2009-07-31 15:10:21

C#函數指針數組C#數組

2009-09-18 10:45:31

C#數組操作

2009-09-27 10:46:30

C#控件數組

2009-08-11 14:57:11

比較C#和Java

2009-09-17 16:06:22

C#數組初始化

2009-08-12 16:22:29

C#插件技術

2009-08-14 10:59:35

C#分部方法

2009-08-13 16:13:03

C#基礎知識

2009-08-10 17:00:14

C#分部方法

2009-01-08 09:26:06

C語言指針類型

2009-08-18 17:29:02

C#使用指針

2016-12-05 13:35:02

C語言數組指針

2009-08-07 13:18:48

C#傳遞數組

2009-09-17 16:36:59

C#一維數組C#多維數組

2009-08-07 09:29:22

C#數組C#函數

2009-08-13 15:48:57

C#指針

2009-08-21 15:16:23

C#使用指針

2009-09-01 10:20:28

C#多種語句
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区中文 | 亚洲一区二区三区在线免费 | 黄色一级免费看 | 国产精品久久久久久久久久三级 | 成人午夜激情 | 97伦理电影网 | 看片国产 | 欧洲成人免费视频 | av黄色网| 国产激情毛片 | 91视频官网 | 国产精品九九九 | 三级成人在线 | 福利视频一区 | 成人免费一区二区 | 一区二区三区在线 | 999久久久久久久 | 精品一区二区三区在线播放 | 欧美大片久久久 | 国产免费一区二区三区网站免费 | 国产乱码精品一区二区三区忘忧草 | 亚州毛片 | a看片 | 国产精品久久久久久久久久久久久 | 精品国产乱码久久久久久蜜退臀 | 鸳鸯谱在线观看高清 | 四虎成人在线播放 | 欧美日韩视频在线第一区 | 亚洲狠狠 | 在线国产中文字幕 | 日韩在线视频一区二区三区 | 99欧美精品 | 99精品在线观看 | 欧美日韩在线观看一区二区三区 | 高清av在线| 黄色成人在线 | 求毛片| 色婷婷精品国产一区二区三区 | 亚洲少妇综合网 | 黄色91在线| 在线播放国产一区二区三区 |