#include <stdio.h>
int maxmum(int x, int y, int z); // 聲明用戶自定義函數
int main() {
int i, j, k;
printf("i, j, k=?\n");
scanf("%4d%4d%4d", &i, &j, &k);
maxmum(i, j, k); // 調用函數
getch();
return 0;
}
maxmum(int x, int y, int z) { // 定義函數
int max;
max = x > y ? x : y;
max = max > z ? max : z;
printf("The maxmum value of the 3 data is %d\n", max);
}
調用時直接使用函數名和實參,實參按聲明順序傳遞,子函數運行結束後按聲明類型返回值給調用者。
數組作形參時只傳遞首元素地址,不復制整個數組。調用時用數組名作實參,實際傳遞指向首元素的指針。兩函數中數組元素類型必須相同。
#include <stdio.h>
void disp(int *n);
int main() {
int m[10], i;
for(i=0; i<10; i++) m[i]=i;
disp(m); // 按指針方式傳遞
getch(); return 0;
}
void disp(int *n) {
int j;
for(j=0; j<10; j++) printf("%3d", *(n++));
printf("\n");
}
void disp(int n); // 形參為單個 int
int main() {
int m[10], i;
for(i=0; i<10; i++) {
m[i]=i;
disp(m[i]); // 逐個傳遞元素值
}
...
}
void disp(int n) { printf("%3d\t", n); }
此時每次只傳遞一個元素的值(值傳遞)。