一个函数仅实现一个功能,
实参与形参:
//实参与形参 #include<stdio.h> int sum(int x ,int y){ return(x+y); } int main(){ int a=sum(3,5); printf("%d",a); }
传值与传址:
#include<stdio.h> void swap(int x,int y); void swap(int x,int y){ printf("互换前:%d %d ",x,y); int tmp; tmp=x; x=y; y=tmp; printf("互换后:%d %d ",x,y); } int main(){ int x=3,y=5; swap(3,5); printf("in main中%d %d",x,y); }
#include<stdio.h> void swap(int *x,int *y); void swap(int *x,int *y){ printf("互换前:%d %d ",*x,*y); int tmp; tmp=*x; *x=*y; *y=tmp; printf("互换后:%d %d ",*x,*y); } int main(){ int x=3,y=5; swap(&x,&y); printf("in main中%d %d",x,y); }
传数组:
#include<stdio.h> void get_array(int a[4]){ for(int i=0;i<4;i++){ printf("%d ",a[i]); } printf(" "); a[1]=12; for(int i=0;i<4;i++){ printf("%d ",a[i]); } printf(" "); } int main(){ int a[4]={1,2,3,4}; get_array(a); for(int i=0;i<4;i++){ printf("%d ",a[i]); } return 0; }
可变参数;#include<stdarg.h>
#include <stdio.h> #include <stdarg.h> int sum(int n, ...); int sum(int n, ...) { int i, sum = 0; va_list vap;//定义一个字符指针的类型 va_start(vap, n);// for (i = 0; i < n; i++) { sum += va_arg(vap, int); } va_end(vap); return sum; } int main() { int result; result = sum(3, 1, 2, 3); printf("result1 = %d ", result); result = sum(5, 1, 2, 3, 4, 5); printf("result2 = %d ", result); result = sum(6, 3, -1, -2, 4, 99, 100); printf("result3 = %d ", result); return 0; }