宣告陣列之後,陣列所配置到的記憶體空間中所儲存的數是未知的,所以在初始陣列元素值之前,當中的元素值是未知的,如果您在宣告變數時尚未決定陣列中的 值,可以這麼宣告陣列:
int irr[10] = {0};
double darr[10] = {0.0};
char carr[10] = {'\0'};
bool barr[10] = {false};
2.
如果您在宣告陣列時只希望初始幾個元素,則可以這麼宣告:
像上例中,都只初始索引0與索引1的兩個元素,其它未初始的元素,整數的話會自動初始為0,浮點數的話會自動初始為0.0,字元的話會自動初始為空字元 ('\0'),而boolean數的話會自動初始為false。
int iarr[5] = {0, 1};
double darr[5] = {0.0, 0.1};
char carr[5] = {'A', 'B'};
bool barr[5] = {false, true};
double darr[5] = {0.0, 0.1};
char carr[5] = {'A', 'B'};
bool barr[5] = {false, true};
像上例中,都只初始索引0與索引1的兩個元素,其它未初始的元素,整數的話會自動初始為0,浮點數的話會自動初始為0.0,字元的話會自動初始為空字元 ('\0'),而boolean數的話會自動初始為false。
3.
如何得知陣列的長度:
int iarr[] = {1, 2, 3, 4, 5, 6};
陣列長度為: sizeof(iarr) / sizeof(iarr[0])
4.
不可以將陣列直接指定給另一個陣列,或是直接比較兩個陣列是否相同
int arr1[5];
int arr2[5];
...
arr1 = arr2; // 錯誤!不能直接指定陣列給另一個陣列
...
if(arr1 == arr2) { // 錯誤!不能直接比較兩個陣列是否相同
...
}
int arr2[5];
...
arr1 = arr2; // 錯誤!不能直接指定陣列給另一個陣列
...
if(arr1 == arr2) { // 錯誤!不能直接比較兩個陣列是否相同
...
}
只能循序一個一個元素進行複製或比對
沒有留言:
張貼留言