Posted on 2008-10-17 09:41
kainster 阅读(148)
评论(0) 编辑 收藏 所属分类:
《C&Pointer》笔记
int (*p)[10];
声明的是指向一个拥有十个整型元素的数组的指针
int matrix[3][10];
int (*p)[10] = matrix;
类似的
int *p = &matrix[0][0];
int *p = matrix[0];
但是应该注意避免:
int (*p)[] = matrix;
这里省略了数组长度,会默认成空数组的长度,有的编译器可能不能捕捉到这样的错误
当把二维数组作为函数参数的时候可以
void func( int (*mat)[10]);
或者
void func( int mat[][10]);
但是不能这样:
void func( int **mat);
因为指向整型指针的指针和指向整型数组的指针是不一样的
int *p[10]; 与 int (*p)[10];不同,int *p[10]; 声明的是指针数组,该数组存储了十个指向整型的指针