1.#include <stdio.h>
int main(int argc, char* argv[], char* env[])
{
int a[3][3] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};
int i = 0;
int j = 0;
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("%d
", *(*(a+i) + j));
}
}
}
2.#include <stdio.h>
#include <malloc.h>
void printArray(int a[], int size)
{
int i = 0;
printf("printArray: %d
", sizeof(a));
for(i=0; i<size; i++)
{
printf("%d
", a[i]);
}
}
int main()
{
int a[3][3] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};
int* p = &a[0][0];
printArray(p, 9);
return 0;
}
3.动态分配二维数组
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define Malloc(type,n) (type *)malloc((n)*sizeof(type))
int main(int argc, char **argv)
{
int **array;
int i,j,row, column;
if(argc!=3)
{
printf("Run me with 2 parameters--rows & columns. For example:
%s 3 4
returns 3 rows 4 columns array
", argv[0]);
exit(1);
}
row = atoi(argv[1]);
column = atoi(argv[2]);
array=Malloc(int *, row);
for(i=0;i<row;i++)
{
array[i]=Malloc(int, column);
}
//validation
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
array[i][j]=i;
printf("%4d", array[i][j]);
}
printf("
");
}
for(i=0;i<row;i++)
free(array[i]);
free(array);
return 0;
}