C语言函数日记

参考:C语言-函数-日记
作者:9art0
发布时间:2020-08-31 00:57:06
网址:https://blog.csdn.net/GatoWong/article/details/108314011?spm=1001.2014.3001.5501

2.1.函数概述一

在这里插入图片描述

拿约会步骤举例:出门前准备——在路上——见面——回家

#include <stdio.h>
#include <stdlib.h>

int prepare(){	//没有形式参数
    printf("精致打扮\n");	//printf是系统做好的函数,可直接调用
    return 0;	//int的返回值0
}

int ontheroad(){
    printf("饭店等她\n");
    return 0;
}

int dating(){
    printf("你好漂亮\n");
    return 0;
}

int gobackhome(int mark){//函数定义的时候,返回值、形参的类型都要规定好
    printf("我能送你回家吗?\n");
    if(mark==0){
	printf("不可以\n");
	}	
	else	printf("可以!\n");
    return 0;
}

//将要做的事全部打包进各个行程

int main()
{
    prepare();
    ontheroad();
    dating();
    gobackhome(0);
//该做什么事就把技能包拿出来
    system("pause"); 
    return 0;
}

2.2.函数概述二

在这里插入图片描述
为什么要函数调用?

1、代码很好看
2、容易定位问题
3、可复用性强(每一次调用都是复用)
4、分工

2.3.函数无返回参数,无返回值带一个参数

本节涉及术语:

1、定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。
2、在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。
3、形式参数:形参是函数被调用时用于接收实参值的变量
4、实际参数:实参是在函数调用时传递给函数的参数

这节是老陈前辈说的一个买米的故事

#include <stdio.h>
#include <stdlib.h>

int all; //全局变量:作用范围在整份代码

//你爸让你去买米,不关心你买多少斤(参数),也不关心你买回来没(返回值)
void  buyrice1() //void代表无返回值,不需要return
                 //void代表返回值的类型是无类型,return可以写,不过后面不加变量
{
   printf("去买米"); 
}

//你爸让你去买米,告诉你买多少斤(参数),但也关心你买回来没(返回值)
//经验:如果错误提示中包含\243 \254的错误,说明你输入了中文符号 

void  buyrice2(int jinshu)  //jinshu是形式参数变量的定义,所以写法也类似:如int a
{
   printf("去买%d斤米",jinshu); 
}


void printfwelcome()
{
    printf("欢迎!\n");
    printf("欢迎!\n");
    printf("欢迎!\n");
}

int main()
{
    int a=6;
    int b=8;
   
   printfwelcome();
   buyrice1(a);//这两句a和b都是实际参数
   buyrice2(b);
    return 0;
}

下面的延时函数也是如此

#include <stdio.h>
#include <stdlib.h>

//调用延时函数也是一样的,

void delay1(int a)  //括号里的a是形式参数
{
    int i;
    for(i=0;i<a;i++);
}

/*void delay2()
{
    int i;  //局部变量:只作用在本函数语句块
    for(i=0;i<5000;i++);
}*/

int main()
{
    int b;
    scanf("%d",&b);
    while(1){
    printf("我是最棒的!");
    delay1(b);//这里b是实参
}
    
    return 0;
}

2.4.函数形式参数作用域及生存期

1.形参的作用域:仅作用于该函数
2.形参的生存期:何时出生,何时死亡

#include <stdio.h>
#include <stdlib.h>

//1.形式参数的作用域:仅作用于该函数
//2.形式参数的生存期:形式参数也是一个变量(局部变量),有自己的内存空间
/* 出生:何时申请了该空间:当函数被调用的时候,才申请了该内存空间
        这个空间内的数据被赋值成实际参数的值,函数调用把实际参数的值拷贝一份给形式参数。
        
    “去世”:何时释放了该空间:函数执行结束后,该空间由内存管理单元自动回收(释放)。    

*/

void buyrice2(int a){
    printf("去买%d斤米...\n",a);
    printf("buy:a的地址是%p\n",&a);
    a++;
    printf("jinshu=%d\n",a);
}

int main()
{
    int a=30;
    
    buyrice2(a);
    printf("main:a=%d\n",a);
    printf("main:a的地址是%p\n",&a);
    system("pause");
    return 0;
}

在这里插入图片描述

2.5.函数形式参数和局部变量的异同点

在这里插入图片描述
形式参数更灵活。

2.6.有一个参数有返回值的函数

2.7.有两个参数的函数,实现加法运算

2.8.实现两数据加减乘除

2.9.两数加减乘除,可选算法

2.10.前面的大综合,小计算器

2.11.函数总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行稳方能走远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值