[TOC]
第七章函数
函数分类
- 函数分为:库函数 和自定义和函数
main()函数 主函数
- 定义一个函数:函数的名字、函数的类型、函数的参数、函数的具体操作。
自定义函数例子
- 函数的使用 定义 声明 使用
- 函数的数据传递用返回值
#include<stdio.h>
int main()
{
int sum(int a,int b);
void logi();
logi();
printf("%d",sum(1,2));
return 0;
}
void logi()
{
printf("hello!\n");
}
int sum(int a,int b)
{
return a+b;
}
函数的嵌套学习
#include<stdio.h>
int max4(int a,int b,int c,int d);
int max2(int a,int b);
int main() {
int a,b,c,d;
printf("请输入四个数");
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("输入完成");
printf("最大值为%d",max4(a,b,c,d));
return 0;
}
int max4(int a,int b,int c,int d) {
int m=max2(a,b);
int n=max2(c,d);
return max2(m,n);
}
int max2(int a,int b) {
return a>b?a:b;
}
- 函数的递归 --->循环等价
-
image-20200321151508854

#include<stdio.h>
int age1(int a);
int main() {
printf("%d",age1(5));
return 0;
}
int age1(int a) {
int age=0;
if(a==1)
{
age=10;
}
else{
age=age1(--a)+2;
}
return age;
}
指针传递数据
#include<stdio.h>
#define N 7
int da(int *a,int *index){
int max=a[0];
for(int i=0;i<=9;i++){
if(a[i]>max)
{
max=a[i];
*index=i;
}
}return max;
}
int main(){
int a[10];int x=0;
int *index;
index=&x;
for(int i=0;i<=9;i++){
scanf("%d",&a[i]);
}
int max=da(a,index);
printf("最大值%d\n",max);
printf("位置为%d\n",(*index+1));
}
auto 自动变量
static 静态变量
register 将变量存入寄存器cpu
extern 引入外部函数
关键字示例
#include<stdio.h>
int staticfun(int x);
int main() {
//auto ---自动变量
auto int a,b=3; //不写 也是auto 自动释放内存
//static ---静态变量
int c=3;
printf("%d\n",staticfun(c)); //3
printf("%d\n",staticfun(c));//6
printf("%d\n",staticfun(c));//9
return 0;
}
int staticfun(int x) {
static int a=0; //静态变量 调用此函数种的a变量 ,执行结束后 a不释放
a+=x;
return a;
}
网友评论