关于C语言中指针的引用的问题
定义一个函数floatsum(float*a[3]),然后在主函数中定义一个二维数组a[3][3],如果我想用数组引用这个函数,应该怎么写呢多谢...
定义一个函数float sum(float *a[3]) ,然后在主函数中定义一个二维数组a[3][3] ,如果我想用数组引用这个函数,应该怎么写呢 多谢
展开
1个回答
展开全部
形参类型 float *a[3] 实参类型 a[3][3] 两个类型不一致,不能传递参数
要定义成:
float sum(float a[3][3]) // 行数3 列宽为3 已知一维和二维的宽度
{
float res = 0.0;
for(int r=0;r<3;r++)
for(int c=0;c<3;c++)
res += a[r][c];
return res;
}
或:
float sum(float (*a)[3],int row); //列宽为3 行数由row指定 已知一维宽度,二维不指定
{
float res = 0.0;
for(int r=0;r<row;r++)
for(int c=0;c<3;c++)
res += a[r][c];
return res;
}
要定义成:
float sum(float a[3][3]) // 行数3 列宽为3 已知一维和二维的宽度
{
float res = 0.0;
for(int r=0;r<3;r++)
for(int c=0;c<3;c++)
res += a[r][c];
return res;
}
或:
float sum(float (*a)[3],int row); //列宽为3 行数由row指定 已知一维宽度,二维不指定
{
float res = 0.0;
for(int r=0;r<row;r++)
for(int c=0;c<3;c++)
res += a[r][c];
return res;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询