C#數組和指標

來源:互聯網
上載者:User

標籤:

轉至http://www.csharpwin.com/csharpspace/3576r8158.shtml

C#數組還是比較常用的,於是我研究了一下C#數組和指標,在這裡拿出來和大家分享一下,希望對大家有用。

C#數組和指標

1。C#數組和vector的區別在於,C#數組的長度是固定的。C#數組一經建立,就不允許動態修改長度。指標可以像迭代器一樣用於遍曆和檢索C#數組中的元素。現代C++程式應該盡量使用vector和迭代器類型,而避免使用低級的C#數組和指標。只有在強調速度時,才在類實現的內部使用C#數組和指標。

2。C#數組的缺陷在於沒有size()操作,也就是程式員無法知道一個給定C#數組的長度。如果需要更改C#數組的長度,就必須再聲明一個更大的C#數組,把原來C#數組的內容copy到新C#數組中去。

3。引用不能定義C#數組。沒有所有元素都是引用的C#數組。

4。非const變數和要到運行階段才知道值的const變數都不能用作C#數組定義的維數。

  1. const unsigned buf_size = 512;  
  2. // const 變數.  
  3. int staff_size = 217;   
  4. // 非const變數.  
  5. const unsigned sz = get_size();   
  6. // 運行時才確定的const變數.  
  7. char buf1[buff_size]; // ok.  
  8. char buf2[buff_size + 1];   
  9. // ok, 常量計算運算式.  
  10. double salaries[staff_size];  
  11. // error, 非const變數做維數.  
  12. int test_rest[sz];  
  13. // error, 運行時才確定的const變數.  

5。預設初始化。
在函數外定義的內建類型C#數組,元素都初始化0。函數內定義的內建類型C#數組,元素都無初始化過程。如果是類類型的C#數組,無論在哪裡定義,都調用預設建構函式初始化。

6。顯示初始化。

  1. int ia[3] = {0, 1, 3};  
  2. char ca1[] = {’c’, ’+’, ’+’};  
  3. char ca2[] = {’c’, ’+’, ’+’, ’\\0’}; [Page]  
  4. char ca3[] = \"c++\";/
  5. / ca3和ca2有相同的維數和初始化值,含有四個元素.  
  6. char ca4[3] = \"c++\"
  7. // 這會產生一個編譯錯誤,因為\"c++\"是一個長度為4的字串.  
  8. string str_arr[3] = {\"hi\", \"heipi\"}; 
  9. // str_arr[2]是一個值為空白的string類型元素.  

7。與vector不同,一個C#數組不能用另外一個C#數組初始化,也不能將一個C#數組賦值給另一個C#數組。個別編譯器擴充功能,支援C#數組複製,但是如果希望編寫的程式能在不同的編譯器上運行,應該避免這類應用。

C#數組和指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.