厚积薄发,滴水穿石

搬家到主站了:http://www.cnblogs.com/cokecoffe/
随笔 - 45, 文章 - 8, 评论 - 12, 引用 - 0
数据加载中……

数组作为函数参数

一、一维数组作为输入参数:

大家都知道,如果一维数组作为参数的话,可以按如下方法来定义函数:

int func(int *array);

或者

int func(int array[M]); 其中M是数组的大小。

 

二、二维数组作为输入参数:

而如果输入参数是二维数组的话,可以按如下方法定义:

1. 直接以二维数组作为参数:

int func(int array[M][N]);

或者 int func(int array[][N]);

也就是说,二维数组作为参数,可以省略第一维的大小,但不可以省略第二维的大小,因为编译器在寻址时是按p + i * N + j来对p[i][j]进行寻址的,所以第二维参数必须给出。

2. 以二维指针作为参数:

int func(int **array);

我们可以定义二维指针,然后寻址时手工进行即可:*((int *)array + i * N + j),前面的(int *)是强制转换成指针类型。

posted on 2012-05-11 01:55 Wangkeke 阅读(1008) 评论(0)  编辑 收藏 引用 所属分类: C


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理