kainster

never too late
posts - 33, comments - 3, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

int (*p)[10];

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]; 声明的是指针数组,该数组存储了十个指向整型的指针

只有注册用户登录后才能发表评论。


网站导航: