C++中數組定義及初始化


一、一維數組

  1. 靜態 int array[100];   定義了數組array,並未對數組進行初始化
  2. 靜態 int array[100] = {1,2};  定義並初始化了數組array
  3. 動態 int* array = new int[100];  delete []array;  分配了長度為100的數組array 
  4. 動態 int* array = new int[100](1,2);  delete []array; 為長度為100的數組array初始化前兩個元素

二、二維數組

  1. 靜態 int array[10][10];  定義了數組,並未初始化
  2. 靜態 int array[10][10] = { {1,1} , {2,2} };  數組初始化了array[0][0,1]及array[1][0,1]
  3. 動態 int (*array)[n] = new int[m][n]; delete []array;
  4. 動態 int** array = new int*[m]; for(i) array[i] = new int[n];  for(i) delete []array[i]; delete []array;    多次析構
  5. 動態 int* array = new int[m][n];  delete []array;      數組按行存儲

三、多維數組

  int* array = new int[m][3][4];    只有第一維可以是變量,其他維數必須是常量,否則會報錯

      delete []array;       必須進行內存釋放,否則內存將泄漏

 

 

四、數組作為函數形參傳遞

  1. 一維數組傳遞:
    1.   void func(int* array);
    2.   void func(int array[]);    
  2. 二維數組傳遞:
    1.   void func(int** array);
    2.   void func(int (*array)[n]);

數組名作為函數形參時,在函數體內,其失去了本身的內涵,僅僅只是一個指針,而且在其失去其內涵的同時,它還失去了其常量特性,可以作自增、自減等操作,可以被修改。

 

五、字符數組

char類型的數組被常委字符數組,在字符數組中最后一位為轉移字符'\0'(也被成為空字符),該字符表示字符串已結束。在C++中定義了string類,在Visual C++中定義了Cstring類。

字符串中每一個字符占用一個字節,再加上最后一個空字符。如:

char array[10] = "cnblogs";

雖然只有7個字節,但是字符串長度為8個字節。

 

也可以不用定義字符串長度,如:

char array[] = "cnblogs";

關注公眾號

免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2023 CODEPRJ.COM