陣列在C/C++裡面其實是非常常見的一種資料結構
在基本的資料型態裡面 一般初始值設定大多都是使用 loop 方式去完成
當然用loop方式去設定是可行的
這裡介紹一般書本常使用的宣告就設定其初值的方式,
同時有二點值得注意,
(1) 如果宣告的一維陣列為 a[] ={1,2,3}這種方式時
取得 a陣列大小的方式為 int cnt = sizeof(a) / sizeof(a[0];
(2) int a[20] = {0},這種方式是將 a 陣列的所有元素值都設為0
那如果寫成 int a[20] = {1}; 這種方式呢?
很遺憾的是, a[0] = 1, 其它的元素都是 0
要全都設1的話,就真的要用 loop 下去做了
以下程式碼僅供參考...
//=====================================
// FileName: ArrayPtr.cpp
// Author: Edison.Shih.
#include <iostream>
using namespace std;
int main(int argc, char *argv)
{
size_t i=0;
size_t cnt=0;
// 宣告與初始方式 -a1
int a1[10]={1,2,3};
for(i=0; i<10; i++) cout << a1[i] << " " ;
cout << endl;
// 宣告與初始方式 -a2
int a2[] = {0,1,2,3,4,5,6,7,8,9};
cnt = sizeof(a2)/sizeof(a2[0]);
for(i=0; i<cnt; i++) cout << a2[i] << " ";
cout << endl;
// 宣告與初始方式 -a3
int a3[10] = {0};
for(i=0; i<10; i++) cout << a3[i] << " ";
cout << endl;
// 以指標連結陣列 a1
int *ptr = a1;
for(i=0; i<10; i++) cout << *(ptr+i) << " ";
cout << endl;
// 將指標轉連結至陣列 a2
ptr = a2;
for(i=0; i<cnt; i++) cout << *(ptr+i) << " ";
cout << endl;
return 0;
}
//=====================================
而輸出結果如下...
1 2 3 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
1 2 3 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9