c语言 数组作为参数传递

请问数组作为参数在函数原型中一定要写"void function(int array[])",在调用时就把[]去掉,这是为什么?
比如下面一段代码:
#include <stdio.h>
static void DisplayBoard(char board[][3]);
main()
{
char board[3][3]={{'X','O','X'},{' ','X','O'},{'X',' ','O'}};
DisplayBoard(board);

return 0;
}

static void DisplayBoard(char board[][3])
{
int row,column;
for(row=0;row<3;row++)
{
if(row!=0)
printf("---+---+---\n");
for(column=0;column<3;column++)
{
if(column!=0)
printf("|");
printf("%3c",board[row][column]);
}
printf("\n");
}
}
上面的代码中函数声明、调用和定义中的数组分别有哪几种写法?都是什么含义?
请帮忙解答,万谢。

调用时把【】去掉,表示掉用这个数组的所有元素,数组的名称表示数组第一个元素的地址。

数组的定义可以写成: int table[]={1,2,3,} 或者table[3],不能写成table[],因为系统在定义数组时就给数组分配了地址,table[]没有确定元素的个数,不能分配地址空间。
但是作为形参,可以这样写,void tab(int table[]) ,不知道为什么,呵呵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-30
调用时实参只写数组名不加方括号就是引用数组整体

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网