七、函数

1、系统函数,即库函数:这是有编译系统提供的,用户不必自己定义这些函数,可以直接使用它们,如我们常用的打印函数printf()。
2、用户定义函数:用以解决用户的专门需要。

7.1库函数的正确调用

1、导入头文件
2、使用库函数,如printf scanf

7.11函数的调用:产生随机数

函数的调用.png
int main01(void)
{
    int i,j;
    2、创建随机数种子 time 获取当前系统时间,将当前系统时间作为随机数种子 
    srand((unsigned int)time(NULL));
    
    
    3、生成随机数
    for(i=0;i<100;i++)
    {
        printf("%d\n",rand()%100);
        
     } 
     return 0;
}
小游戏;猜数字 随机一个1~100之间的书 通过键盘输入数据  根据数据输入进行提示 
int main(void){
    int value;
    int num;
    srand((unsigned int)time(NULL));
    
    num = rand()%100+1;
    while(1)
    {
        scanf("%d",&value);
        if(num>value)
        {
            printf("您输入的数太小了\n");
            
        }
        else if(num<value)
        {
            printf("您输入的数太大了\n");
        }else{
            printf("恭喜您,猜对了"); 
            break; 
        }
    }
    return 0; 
}

7.2函数的定义方法

使用函数的优点,提高代码阅读性 减少代码冗余 
函数格式
返回值类型 函数名(函数参数列表) 
{
代码体
返回值
}

7.3函数的类型和返回值

无参函数.png

函数的返回值是通过函数中的return语句获得的,return后面的值也可以是一个表达式

a)尽量保证return语句中表达式的值和函数返回类型是同一类型
b)如果函数返回的类型和return语句中表达式的值不一致,则以函数返回类型为准,即函数返回类型决定返回值的类型。对数值型数据,可以自动进行类型转换。
注意:如果函数返回的类型和return语句中表达式的值不一致,而它又无法自动进行类型转换,程序则会报错
c)return语句的另一个作用为中断return所在的执行函数,类似于break中断循环,switch语句一样。
d)如果函数带返回值,return后面必须跟着一个值,如果函数没有返回值,函数名字的前面必须写一个void关键字,这时候,我们写代码时也可以通过return中断函数(也可以不用),只是这是,return后面不带内容(分号“;”除外)

7.4形式参数与实在参数,参数值的传递

函数的形参与实参


函数的形参和实参

//值传递 形参不能改变实参的值
//地址传递 形参可以改变实参的值

7.5函数的正确调用,嵌套调用,递归调用

//函数声明 函数执行过程 告诉编译器改函数存在


函数递归

递归函数必须要有出口,因为递归函数在栈区战友资源会比较多

7.6局部变量和全局变量

auto int a=10
局部变量,只能在函数内部使用,也可以不加auto
作用域,在函数内部,从变量定义到函数结束
在不同函数内的局部变量名可以相同

在函数外部定义变量成为全局变量
extern int a
全局变量作用域是整个项目中所有文件 如果在其他文件中使用需要加入声明
在函数中改变全局变量的值可以改变全局变量的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容