#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);
}
帮我改下
要注意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 = ∑
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);
}
#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;
}
你这个是指针函数而不是函数指针,不要搞混了.
像这个程序,你得把你的返回值类型改成int 而不是int *