C++ array
嘛~~說到陣列除了要想好輸入的方式(像分割),並把牠們放到你宣好的陣列中,對於新手,大多是空間不足,索引值搞錯,資料型態問題........等。但這些只要多練幾下,就會有feel。
使用陣列有兩步驟:
( 1 ) 宣告陣列
( 2) 配置記憶體給陣列
宣告:
資料型態 名稱[大小];
int yoyo[4];
陣列索引值由0開始0~3 ,共有4個元素 (不是0~4啊!!!!)
之後看要塞什麼進去
int yoyo[4] ={0,1,2,3};
整數陣列初始值為0
浮點數陣列初始值為0.0
字元陣列初始值為'\0'
bool陣列初始值為false
在宣告陣列時初始陣列元素,可以避免其它的程式存取到非預期的數值。
int arr[] = {1,2,3,4,5,6};
cout<<"長度:"<<(sizeof(arr)/sizeof(arr[0]))<<endl;
sizeof()會傳回變數所指向的記憶體空間所佔大小,再除以一個陣列元素的大小,就可以取得陣列的長度咯。
到了二維陣列,腦子就要浮現表格,一定要有自己心目中的想像表格!!
這是我心目中的圖~~
如果是新手,就拿筆紙畫一下吧
二維陣列的重點在於怎麼放東西進格子裡,和怎麼把格子內的東西拿出來~
通常都會用雙迴圈做上述動作
輸入四筆資料:
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- int main(int argc, char *argv[])
- {
- int arr[2][2];
- for(int i=0;i<2;i++)
- {
- for(int j=0;j<2;j++)
- {
- cin >> arr[i][j];
- }
- }
- for(int i=0;i<2;i++)
- {
- for(int j=0;j<2;j++)
- {
- cout << arr[i][j] << " ";
- }
- cout << endl;
- }
- system("PAUSE");
- }
不是說打4筆資料嗎? 為什麼只能打2筆?
在這我們沒用空白切割,所以她讀到空白就會停,換下一筆輸入,這輸入技巧有好有壞~~
反轉矩陣:
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- int main(int argc, char *argv[])
- {
- int arr[3][3]={{1,2,3},
- {4,5,6},
- {7,8,9}};
- int pust[3][3];
- for(int i=0;i<3;i++)
- {
- for(int j=0;j<3;j++)
- pust[i][j]=0;
- }
- for(int i=0;i<3;i++)
- {
- for(int j=0;j<3;j++)
- {
- pust[j][i]=arr[i][j];
- }
- }
- for(int i=0;i<3;i++)
- {
- for(int j=0;j<3;j++)
- {
- cout<<pust[i][j];
- }
- cout << endl;
- }
- system("PAUSE");
- }
矩陣式大學老師時常拿來考試的東西,也是訓練你對陣列的觀念~
END