我不得不寫一個程序,該程序的功能是將數組中的所有正數相加,但將函數參數數組作爲指針。在主函數中有一個問題發生,當我嘗試調用sum函數時。這裏是我的源代碼:如何在函數中使用數組指針?
#include <stdio.h>
#include <conio.h>
int posit(int *x[], int n){
int s=0;
for(int i=0; i<n; i++){
if(*x[i]>0){
s=s+*x[i];
}
}
return s;
}
int main(){
int k;
scanf("%d",&k);
int a[k];
for(int i=0; i<k; i++){
scanf("%d",&a[i]);
}
int b=posit(&a,k);
printf("%d\n", b);
getch();
return 0;
}
你說你的源可以被修改,在調用posit // int b = posit(&a,k)//函數之後,[這裏是我的「a」數組] [] [] [] [] []?我一開始就這樣寫過,但被導師拒絕了。他讓我寫這樣的函數// int posit(int * x [],int n)// – bbilegt
@filemonster,'int * x []'是一個int *數組,它不是' int'。 – hmjd
@filemonster:'&a'是一個指向數組的指針,其類型爲int(*)[k]' – newacct