C语言函数(一)

该篇重点知识点为:

1.掌握函数的封装及使用

2.掌握有参无参带返回值的函数的运用

3.掌握全局变量、局部变量的区别

4.掌握多文件编程

一、函数概述

1.函数是一种可重用的代码块,用于执行特定任务或完成特定功能。

2.函数作用:对具备相同逻辑的代码进行封装,提高代码的编写效率,实现对代码的重用。

#include<stdio.h>

	void fn1() {
		printf("hello world");
	}
	int main() {
		fn1();
		fn1();
		return 0;
	}

二、函数的使用

函数的使用的语法格式:

void 函数名(int num){
        函数体

}int 函数名(int num){
        函数体

}

//函数调用

函数名();

语法说明 :

1、函数名左边的关键字void是函数的返回值,void代表函数没有返回值,int代表函数的返回值为整型。

2、函数名是与变量名一样,是标识符的一种,需要遵循标识符的命名规则

3、定义函数,调用,函数永远不会被执行。

需求:实现2个数字相加,并输出和

#include<stdio.h>

	void fn1() {
		int num1, num2;
		printf("请输入两个数:\n");
		scanf_s("%d %d", &num1, &num2);
		printf("两数的和是:%d", num1 + num2);
	}
	int main() {
		fn1();
		return 0;
	}

三、函数的分类

函数有3种分类方式:

3.1从定义角度分类(即函数是谁实现的)

1.库函数(c库实现的)

2.自定义函数(程序员自己实现的函数)

3.系统调用(操作系统实现的函数)

文件操作:如打开文件(open())、读取文件(read())、写入文件(write())和关闭文件(close())等

内存管理:如分配内存(malloc()在用户空间实现,但可能间接使用系统调用)、释放内存(free())以及修改内存保护标志等。

虽然malloc()和free()是库函数,但它们可能会使用系统调用来分配和释放内存。

设备管理:如读取和写入设备文件、设置设备参数等

3.2从参数角度分类

(1)有参函数:

函数有形参,可以是一个,或者多个,参数的类型随便完全取决于函数的功能

(2)无参函数:

函数没有参数,在形参列表的位置写个viod或什么都不写

#include<stdio.h>

	void fn1(void) {
		printf("大家好!!!");
	}
	void fn2(int num) {
		printf("%d", num * 100);
	}
	int main() {
		fn1();
		fn2(19);
		return 0;
	}

3.3从返回值的角度分类

(1)带返回值的函数

在定义函数的时候,必须带着返回值类型,在函数体里,必须有return

如果没有返回值类型,默认返回整型。

oi注意了!!!

如果把函数的返回值类型省略,默认返回整型

函数内,return后边内容不会被执行

在定义函数时,函数的返回值类型,到底时什么类型的,取决于函数的功能

(2)没返回值的函数

在定义函数的时候,函数名字前加void

oi注意:在函数的定义下不能嵌套,即不能在一个函数体里定义另外一个函数,所有的函数必须是平行的 

四、函数的声明

1、如果函数定义代码没有放在函数调用的前面,这时候需要先做函数的声明

2、所谓函数声明,相当于告诉编译器,函数是有定义的,在别的地方定义,以便使编译能正常进行。

注意:一个函数只能被定义一次,但可以多次声明

extern void test()://函数的声明

 示例:

#include<stdio.h>
extern  void test();          //函数说明
int main() {
	int num = 99;
	printf("%d\n", num);
	test();
}
void test() {
	printf("hello world");
}

五、局部变量和全局变量

(1)局部变量

1.定义在函数内部的变量称为局部变量

2.局部变量的作用域(作用范围)仅限于函数内部,离开该函数后是无效的

3.局部变量的生命周期:离开该函数后,局部变量自动释放(函数执行完毕,自动释放)

注意了!!!:局部变量使用前,如果没有初始化,会报错

(2)全部变量

1.在所有函数外部定义的变量称为全局变量

2.它的作用域默认是整个程序,也就是所有的源文件,全局变量的生命周期是永久的,除非手动删除。

注意:全局变量,使用前如果没有初始化,它会默认初始化为0 

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值