关于二维数组作函数参数传递,当函数原型声明为一个指向整形的指针时,传递给函数的实参该怎么来写,
比如我声明一个函数[code] int test (int *string) /*声明的参数类型以给出: 指向整形的指针*/
{
........;
}
int main(void)
{
int str[][3];
test ( ? );
}[/code]比如我要将str二维数组作为一个整形指针传递给test函数,我"?"里面该怎么来写
还有一种情况就是在主函数里边声明一个指针指向二维数组,然后把这个指向数组的指针作为实参传递给函数,那么声明函数的形参该怎么来写,传递时候的实参该怎么来写?
eg:[code] int test ( ? ) /*
**声明函数的参数又该怎么来写,看书看的云里雾里,这里的参数是不是
**要和调用时所传递的参数对应?
*/
{
.......;
}
int main(void)
{
int str[][3];
int (*p)[3]=str; /*我不知道我这个指向数组的指针写的对不对*/
/*然后就是把这个指针作为参数传递给函数*/
test( ? ); /*是直接写p呢,还是p[3],还是其它什么呢?*/
}
[/code]
zyy_hz 于 2013-06-04 12:32:03发表:
#include
void PriNum(int (*p)[3]);
int main(int argc, char **argv)
{
int t[2][3] = {{1,2,3},{4,5}};
int (*p)[3] = &(t[0]);
PriNum(p);
return 0;
}
void PriNum(int (*p)[3])
{
int i = 0;
int j = 0;
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
printf("%d\n", p[i][j]);
}
}
这是我自己写的一个,你看下!如果有什么错误,请跟我说。
于 2013-05-28 17:31:26发表:
顶一个。
hml1006 于 2011-07-26 18:46:59发表:
拜托,c语言有强制转换 (int*)str
不够阳光 于 2011-07-22 13:46:53发表:
苍天啊!你们是来学习的吗,,,,,,,,,,,,,,,,,,,一个回复的都没有,,,,,,,,,,,,,,,,,
what fucking .......................................