C语言----函数

来源:互联网 发布:用c语言编写一个小木马 编辑:程序博客网 时间:2024/06/06 14:28

一、定义:

有特定功能的代码片段的集合体,我们成为 函数。

二、返回值:

1、函数的返回值称为 函数的值,只能通过 return 语句返回给主调函数;
2、一个函数只能有一个返回值;
3、函数即使没有返回值也可以使用 return 来结束函数的执行,回到 主调函数;
4、return 后面的语句 不再执行。

三、形参、实参

1、形参
出现在函数的定义中,以 假名字 来表示函数调用时需要提供的值。
2、
出现在函数调用中的表达式。

注意:函数调用时,形参会拷贝实参的内容,传递参数是给函数传送信息的一种方式。

四、函数声明

严格的函数通常包括三部分: 函数声明、函数定义、以及函数调⽤用

五、函数的递归调用

1、//对于函数的递归调用一定要做好分析,推导出递归表达式,n * multipleFun(n - 1),同时为了防止循环调用自身导致程序陷入死循环,一定要找准调用结束的条件,比如求阶乘就是条件为 1 时停止循环调用

2、 所谓递归调用函数实现内部循环调用自身,直到条件不满足为止。

六、例代码:

输入一个年月日,计算出是这一年中的 第几天?#import <Foundation/Foundation.h>int sumValue( int n );int dayOfYear( int year, int month, int day );int main(int argc, const char * argv[]){//    int n = 0;//    printf( "请输入一个数:");//    scanf( "%d", &n );//    printf( "1 ~ %d 的和是 %d\n", n, sumValue( n ) );//    printf( "请输入年月日信息:" );    int year = 0, month = 0, day = 0;    scanf( "%d/%d/%d", &year, &month, &day );    printf( "%d%d%d日是这一年中的第 %d 天。\n",           year, month, day, dayOfYear( year, month, day ) );    return 0;}int sumValue( int n ){    int sum;    for( int i = 1; i <= n; i++ )        sum += i;    return sum;}int dayOfYear( int year, int month, int day ){    int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30 , 31, 30, 31};    // 如果输入的月份大于12,或者日期大于31则表示输入错误,直接结束输入,返回0天;    if( month > 12 || day > 31 )    {        return 0;    }    if( year % 400 == 0 || ( year % 4 == 0 && year % 100 !=0 ) )    {        days[1] = 29;        //如果是闰年,则将2月的值改为29天,否则不做任何操作,则为默认的28天    }    //定义一个整形变量先保存日期,再通过for循环连续加上当前给定月之前的所有完整月的天数,最后将结果返回    int daysOfYear = day;    for( int i = 0; i < month - 1; i++ )    {        daysOfYear += days[i];    }    return daysOfYear;}
1 0