嵌入式学习_c语言基础day3

第五章函数

1、为什么使用函数:1 避免代码冗长 2模块化的设计思路 3按功能划分

2、函数要先定义再使用  ,函数三要素: 函数名、参数列表、返回值

3、传递参数传递的是值,常量也可,数组作为参数传递的是数组的首地址可以写作

void func(int array【】)、void func(int array【】【3】)

数组传递,在函数中的sizeof(array)==8;因为传递的是首地址,形参中不存在数组的概念,即使括号中包含了数组的大小也没有意义,在os中用8个字节表示一个地址

4、取大值: x>y?x:y     可以直接return x>y?x:y;

#include<stdio.h>

int main(){

    int getmax(int d1,int d2,int d3,int d4);

    int d1,d2,d3,d4,max;

    puts("输入四个数字: ");

    scanf("%d%d%d%d",&d1,&d2,&d3,&d4);

    max=getmax(d1,d2,d3,d4);

    printf("最大的数是:%d",max);

    return 0;

}

int getmax(int d1,int d2,int d3,int d4){

    int getbig(int a,int b);

    int m;

    m=getbig(d1,d2);

    m=getbig(m,d3);

    m=getbig(m,d4);

    return m;

}

int getbig(int a,int b){

return a>b?a:b;

}

函数可以当做表达式,用的是它的返回值,函数也可以调用当做其他函数调用的参数

5、unsigned int  能表示的正数范围更大,因为是从0开始的,int是从负数开始表示的

6、exit(-1);可以直接结束某函数,但是要加#include<stdlib。h>头文件

7、局部变量 只在所处的函数内有用,函数的局部变量在调用函数是分配内存,调用结束释放内存

8、外部变量:在函数外定义的变量,之后在定义位置以后的函数可以调用,全局变量:定义在开头的外部变量

9、递归求阶乘(工作用处不多)

#include<stdio.h>

int main(){

    int jiecheng(int n);

    int n,j;

    puts("输入想求多少的阶乘:");

    scanf("%d",&n);

    j=jiecheng(n);

    printf("%d的阶乘为:%d",n,j);

    return 0;

}

int jiecheng(int n){

    int j;

    if(n==1){

        j=1;

    }else{

    j=jiecheng(n-1)*n;}

    return j;

}

10、函数作业:输入十个数,求最大数以及最大数的下标

#include<stdio.h>

int maxi;

void initarray(int array[],int len){

for(int i=0;i<len;i++){

        printf("输入第%d个数:\n",i+1);

        scanf("%d",&array[i]);

    }

}

int getmax(int array[],int len){

    int max;

    max=array[0];

    for(int i=0;i<len;i++){

        if(max<array[i]){

            max=array[i];

            maxi=i;

        }

    }

    return max;

}

int main(){

    int array[10];

    int len=sizeof(array)/sizeof(array[0]);

    initarray(array,len);

    printf("最大的数为:%d,最大数的下标为:%d",getmax(array,len),maxi);

    return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值