一个函数仅实现一个功能,
实参与形参:
//实参与形参
#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;
}