-- 作者:admin
-- 发布时间:2015/11/17 7:48:36
-- [推荐]第八课代码讲义:函数
封装功能,可以反复调用,在代码更新时也希望尽量减少修改量 int main() { int i; scanf("%d",&i); printf("%d\\n",i); scanf("%d",&i); printf("%d\\n",i); scanf("%d",&i); printf("%d\\n",i); }
函数代码 int main() { func(); func(); }
func() { int i; scanf("%d",&i); printf("%d\\n",i); }
主函数也是函数
使用参数: int main() { int i,j; scanf("%d",&i); scanf("%d",&j); printf("最大值为:%d\\n",(i>j)?i:j);
scanf("%d",&i); scanf("%d",&j); printf("最大值为:%d\\n",(i>j)?i:j); }
函数使用: int main() { func(); func(); }
func() { int i,j; scanf("%d",&i); scanf("%d",&j); printf("最大值为:%d\\n",(i>j)?i:j); }
使用参数可以让调用者自己决定数值的输入方式 int main() { int i,j; scanf("%d",&i); scanf("%d",&j); func(i,j);
func(j,i); }
func(int i,int j) {
printf("最大值为:%d\\n",(i>j)?i:j); }
返回值 既然参数可以决定如何获取数值,为什么不可以调用者自主决定结果值的处理方式呢?
int main() { int i,j; scanf("%d",&i); scanf("%d",&j); printf("最大值为:%d\\n",func(i,j));
int temp=func(j,i); func(func(j,i),i); printf("temp=%d\\n",temp); }
int func(int i,int j) { return (i>j)?i:j; }
内存分配原理解释 int main() { int i,j; scanf("%d",&i); scanf("%d",&j); func(i,j); printf("%d<%d\\n",i,j); }
void func(int i,int j) { int temp; if(i>j) { temp=i; i=j; j=temp; } }
建议在使用前声明函数原型 int main() { void func(int ,int ,int) int i,j; scanf("%d",&i); scanf("%d",&j); func(i,j); printf("%d<%d\\n",i,j); }
void func(int i,int j,int t) { int temp; if(i>j) { temp=i; i=j; j=temp; } }
函数嵌套调用 int main() { int max4(int ,int ,int ,int); int num1,num2,num3,num4,max; scanf("%d,%d,%d,%d",&num1,&num2,&num3,&num4); max=max4(num1,num2,num3,num4); printf("max=%d\\n",max); }
int max4(int num1,int num2,int num3,int num4) { int max2(int num1,int num2); int max; max=max2(num1,num2); max=max2(max,num3); max=max2(max,num4); return max; }
int max2(int num1,int num2) { return (num1>num2)?num1:num2; }
递归调用 int main() { int num=4; printf("%d=%d\\n",num,factorial(num)); }
int factorial(int n) { if(n>1) return n*factorial(n-1); else return 1; }
全局变量(尽量不要使用) int num;
int main() { printf("%d\\n",num); func(); printf("%d\\n",num); }
void func() { num=4; }
静态变量 int main() { printf("%d\\n",func()); printf("%d\\n",func()); printf("%d\\n",func()); }
int func() { static int temp=1; temp++; return temp;
}
|