C语言初级阶段5——函数1

函数的基本概念

1.函数:理解为封装功能的容器。

主函数是函数的入口

2.函数定义的基本格式:

返回值类型:常用的基本数据类型,执行完以后,函数会得到一个什么类型的值,如果需要返回一个值,那么返回类型这里通过return把值返回出去;如果不需要返回一个值出去,那么就在返回值类型这里就用void(void表示空类型)

函数名:就是一个标识符,符合标识符的规则和规范

int——返回值类型 main()——函数名 (形参列表){

return 0; 话说完了,函数运行结束了。

}

3.自定义函数

(1)int One()

{

return 0;

}

(2)void Two(){

}

函数的调用

1.程序的运行流程:自上而下依次进行,程序的入口在main函数这里

函数的调用:把自定义函数,放到主函数里面来。直接写函数名

形参列表:形式参考的变量,在调用这个函数的时候,需要用到什么数据,就可以用形参来表示。函数名后面的括号。

实参列表:有实际的值参考的值。——后面括号中的参数。(可以是常量、变量、表达式、函数等)

调用函数的时候,会把实参传给形参,对应位置进行传参(值传递)。

如果将自定义的函数放在放在主函数之后,在主函数中调用是调回用不出来的。

2.BUG:一个无法解析的外部命令,函数只声明了,没有被定义(加花括号)

void Fun;函数的声明

#include<stdio.h>
void Two() {
	for (int i = 1; i < 10; i++) {
		for (int j = 1; j <= i; j++)
		{
			printf("%d*%d=%d\t", j, i, j * i);
		}
		printf("\n");
	}
}
int Three(int a, int b) {

	return a + b;
}
int Four()
{
	return 0;
	for (int i = 1; i < 10; i++) {
		for (int j = 1; j <= i; j++)
		{
			printf("%d*%d=%d\t", j, i, j * i);
		}
		printf("\n");
	}
}
void Seven(int x, int y)
{
	for (int i = 0; i < x; i++)
	{
		for (int j = 0; j < y; j++)
		{
			printf("*");
		}
		printf("\n");
	}
}
int main() {
	Two();
	printf("%d\n", Three(149, 778));
	printf("%d\n", Three(12, 749));
	printf("%d\n", Three(159, 54));
	Four();
	Seven(10,4);
	return 0;
}

局部变量和全局变量

1.局部变量:作用域在一定的区域内才能被使用的变量,出了自己的作用域就会被释放掉。

#include<stdio.h>
void add() {
	int a;
}
int main() {
	int a;//这是可以被执行的因为它的范围不同。
	return 0;
}

2.全局变量:从定义开始往下,所有的地方都可以使用,在程序程序结束的时候被释放。

#include<stdio.h>
int x;//从函数外定义了所以全部都可以用。
void add() {
	x = 10;
	int a;
}
int y;//在这里定义y上面的不能用,因为程序的读取是自上而下进行的。
int main() {
	int a;
	x = 10;
	y = 2;
	return 0;
}

3.注意:全局变量和局部变量允许同名,使用这个这个同名变量的时候,使用的是最近的是最近的一个。(就近原则)

#include<stdio.h>
int x;//如果没有给全局变量赋值,系统默认为0。
int y = 2;
int main() {
	int y = 7;//就近原则
	printf("%d\n%d\n", x, y);
	return 0;
}

4.静态变量:在程序执行后定义的,生命周期是程序结束后才死亡的,只会被定义一次,不会被重复定义。

静态的关键字:static

#include<stdio.h>
int main()
{
	int q;
	for (int i = 0; i < 10; i++) {
		q++;
		printf("%d\n", q);
	}
	for (int i = 0; i < 10; i++) {
		static int a = 10;//第二次申请内存失败
		a++;
		printf("%d\n", a);
	}
	return 0;
}

image-20221022164021913

posted on 2022-11-06 09:02  George-Juddson  阅读(120)  评论(0编辑  收藏  举报