永发信息网

函数指针问题?

答案:3  悬赏:10  手机版
解决时间 2021-04-30 00:47
  • 提问者网友:棒棒糖
  • 2021-04-29 17:23

#include <stdio.h>
int *jiansuan(int *p,int n)
{
int sum;
for(int i=0;i<12;i++)
{
sum+=*p;
p++;

}
return sum;

}
void main()
{

int shuzu[3][4]={3,4,5,66,44,33,23,44,55,43,32,12};
int *p1;
printf("");
p1=*jisuan(shuzu,12);
printf("和是:%d",*p1);


}

帮我改下

最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-04-29 18:39

要注意2维数组的指针:



#include <stdio.h>
const int N = 4;
const int M = 3;
int *jiansuan(int (*p)[N])
{
int sum = 0;
int *result;

for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
sum += p[i][j];
}
}
result = &sum;
return result;
}
void main()
{
int shuzu[M][N]={3,4,5,66,44,33,23,44,55,43,32,12};
int *p1;
p1=jiansuan(shuzu);
printf("和是:%d\n",*p1);
}


全部回答
  • 1楼网友:慢性怪人
  • 2021-04-29 20:42

#include <stdio.h> int jiansuan(int *p,int n) // 函数返回类型应为 int; { int sum = 0;// 初始化; for(int i=0;i<12;i++) { sum+=*p; p++; } return sum;// 与返回类型对应 }

void main() { int shuzu[3][4]={3,4,5,66,44,33,23,44,55,43,32,12}; int p1;// int 类型; printf(""); p1=jiansuan(shuzu[0],12);// 3 处修改: 函数名字不对;函数名前去掉*;第一个参数类型不对; printf("和是:%d\n",p1);// *p1 改为 p1; }

  • 2楼网友:罪歌
  • 2021-04-29 19:48

你这个是指针函数而不是函数指针,不要搞混了.

像这个程序,你得把你的返回值类型改成int 而不是int *

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯