您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#數組和指針是什么”,在日常操作中,相信很多人在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#數組定義的維數。
const unsigned buf_size = 512; // const 變量. int staff_size = 217; // 非const變量. const unsigned sz = get_size(); // 運行時才確定的const變量. char buf1[buff_size]; // ok. char buf2[buff_size + 1]; // ok, 常量計算表達式. double salaries[staff_size]; // error, 非const變量做維數. int test_rest[sz]; // error, 運行時才確定的const變量.
5。默認初始化。
在函數外定義的內置類型C#數組,元素都初始化0。函數內定義的內置類型C#數組,元素都無初始化過程。如果是類類型的C#數組,無論在哪里定義,都調用默認構造函數初始化。
6。顯示初始化。
int ia[3] = {0, 1, 3}; char ca1[] = {’c’, ’+’, ’+’}; char ca2[] = {’c’, ’+’, ’+’, ’\\0’}; [Page] char ca3[] = \"c++\";// ca3和ca2有相同的維數和初始化值,含有四個元素. char ca4[3] = \"c++\"// 這會產生一個編譯錯誤,因為\"c++\"是一個長度為4的字符串. string str_arr[3] = {\"hi\", \"heipi\"}; // str_arr[2]是一個值為空的string類型元素.
7。與vector不同,一個C#數組不能用另外一個C#數組初始化,也不能將一個C#數組賦值給另一個C#數組。個別編譯器擴展功能,支持C#數組復制,但是如果希望編寫的程序能在不同的編譯器上運行,應該避免這類應用。
到此,關于“C#數組和指針是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。