成人免费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-09-27 11:14:09

C#數組

2009-08-03 17:12:40

C#指針操作

2009-09-18 10:45:31

C#數組操作

2009-07-31 15:10:21

C#函數指針數組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-10 17:00:14

C#分部方法

2009-08-13 16:13:03

C#基礎知識

2009-01-08 09:26:06

C語言指針類型

2009-08-18 17:29:02

C#使用指針

2016-12-05 13:35:02

C語言數組指針

2009-09-17 16:36:59

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

2009-08-07 09:29:22

C#數組C#函數

2009-08-07 13:18:48

C#傳遞數組

2009-08-18 17:37:57

C#固定指針

2009-08-13 15:48:57

C#指針

2009-08-21 15:16:23

C#使用指針
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区在线 | 欧 | 免费人成激情视频在线观看冫 | 亚洲协和影视 | 亚洲黄色av | 亚洲一区二区在线播放 | 一区二区三区观看视频 | 久久亚洲美女 | 中文字幕av一区二区三区 | 伊人最新网址 | 日韩欧美一区二区三区在线播放 | 国产黄色大片在线观看 | 成人久久网 | 91色视频在线观看 | 99久久久久久久 | h肉视频 | 日日夜夜av | 亚洲一区二区三区免费在线 | 成年人在线观看视频 | 国产精品久久久久久久久久妇女 | 日日夜夜精品免费视频 | 成年人黄色一级片 | 久久高清免费视频 | 夜夜草导航 | 欧美不卡 | 成人天堂噜噜噜 | 欧美在线成人影院 | 丝袜一区二区三区 | 久久久久久久久久久久久91 | 日韩精品成人免费观看视频 | www.日韩高清 | 在线中文视频 | 久久大全 | 黄视频在线网站 | av一区二区三区四区 | 亚洲日本三级 | 欧美美女爱爱视频 | 日韩最新网站 | 在线视频 欧美日韩 | 中文字幕不卡在线观看 | 精品免费国产视频 | 成av在线 |