以前老是覺得數組是一個很簡單的玩意兒,近來看了一些資料,瞭解以前不曾留意的細節。記於下:
1.數組定義
int a[MAX]={0}; int main( )
int main( ) {
{.... /*省略*/ int a[MAX]={0};
return 0; return 0;
} }
上述兩個程序都定義了一個整型數組,一般來說是沒什麼差別的。但是,在實驗中MAX的值足夠大的時候,左側的程序中的MAX比右側中MAX能取得的最大值要大。這就告訴我們: 如需要一個很大的數組,建議將數組定義在main函數之外,而不是之內,若定義在main之內的話,數組稍大就會異常退出。
2.數組間賦值
已知兩個同類型的數組,int a[10] ,b[10],拷貝一個數組到另一個數組中,部分或者全部。
#include<iostream>
#include<string.h> //函數memcpy對應的頭文件
using namespce std;
int main( )
{int a[10],b[10]={0};//也可這樣:memset(b,0,sizeof(b));
for(int i=0;i++;i<10)
a[i] = i ;
memcpy(b,a,sizeof(int)*10);
for(int i=0;i++;i<10)
cout<<b[i]<<" ";
return 0;
}
以上的全部拷貝,也可以改爲複製部分:memcpy(b,a,sizeof(int)*5); /*前五個元素,對應同位置的前5個b[0]---b[4]*/
memcpy(b+1,a,sizeof(int)*5); /*a前五個元素,複製到b中的b[1]---b[5]*/