一维数组初始化:
标准方式一:int value[100]; // value[i]的值不定,没有初始化
标准方式二:int value[100] = {1,2}; // value[0]和value[1]的值分别为1和2,而没有定义的value[i>1] 则初始化为0
方式三:int a_array []= {0,1,2,3};
指针方式: int* value = newint[n]; // 未初始化
delete []value; // 一定不能忘了删除数组空间
二维数组初始化:
标准方式一:int value[9][9]; // value[i][j]的值不定,没有初始化
标准方式二:int value[9][9] = {{1,1},{2}};//value[0][0,1]和value[1][0]的值初始化,其他初始化为0
方式三:int a[][4]={{0,0,3},{},{0,10}};
指针方式一:int (*value)[n] = newint[m][n];
delete []value; // n必须为常量,调用直观。未初始化
指针方式二:int** value = newint* [m];
for(i=0;i<m;i++) value[i] = newint[n];
for(i=0;i<m;i++) delete []value[i];
delete []value; // 多次析构,存储麻烦,未初始化
指针方式三:int * value = newint[3][4]; // 数组的存储是按行存储的
delete []value; // 一定要进行内存释放,否则会造成内存泄露
多维数组初始化:
指针方式:int * value = newint[m][3][4]; // 只有第一维可以是变量,其他几维必须都是常量,否则会报错
delete []value; // 一定要进行内存释放,否则会造成内存泄露
一维数组参数传递:
void Func(int *value);
或者是
void Func(int value[]);
二维数组传递:
定义是int **value;的传递
void Func(int **value);
定义是int (*value)[n] = newint[m][n];的传递
void func(int (*value)[n]); // sizeof(p)=4,sizeof(*value)=sizeof(int)*n;