C语言之初始函数

1. 为什么要用函数

1.1   如果程序的功能比较多,规模比较大,所有的代码都写在一个主函数里面,不会使得主函数变得很庞杂,看着很乱,使阅读者阅读程序会感觉到困难。因此,人们会想到,利用函数去简化程序设计的过程。我们可以事先编好一批常用的函数来实现不同的功能,调用时直接在程序中调用系统函数的函数代码,并执行就可以得到预期结果。

1.2    所在函数库
①. 字符库函数:【ctype.h】
②. 数学函数:【math.h、stdio.h、string.h、float.h】
③. 目录函数:【dir.h、dos.h】
④. 进程函数:【stdlib.h、process.h】
⑤. 诊断函数:【assert.h、math.h】
⑥. 操作函数:【string.h、mem.h】

1.3   函数就是功能,每一个函数用来实现一个特定的功能函数的名字反应,其代表的功能。

2. C语言函数的作用域

 

 注:.text为代码区, .data是数据区,  .heap是堆区,.stack是栈区。

2.1 定义:生存期也叫生命期。指的是标识符从程序开始运行时被创建,具有存储空间,到程序运行结束时消亡,释放空间的时间段。
注:此阶段针对的是程序的执行过程。

2.2 局部变量的生存期:函数被调用,分配存储空间,到函数执行结束,存储空间释放。局部变量存储在栈区.stack。

2.3 全局变量的生存期:从程序行前开始,到执行后结束。全局变量存储在数据区.data。

2.4 动态生存期: 标识符由特定的函数调用或运算来创建和释放,比如调用malloc() 为变量分配存储空间,变量的生存期开始,而调用free() 释放空间或程序结束时,变量生存期结束。具有动态生存期的变量存储在堆区.heap。

3. 定义函数的方法
 

类型名 函数名(形式参数列表)

{

    函数体  

}

函数体包括声明部分和语句部分。

4. 函数调用的形式

函数名(实参列表)

注:在调用有参函数时,主调函数和被调函数之间有数据传递的关系,在定义函数时,函数名后面括号中的变量名称为“形式参数”,在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。

函数可以没有返回值(void),最多返回一个该如何处理?
  1.将main函数名改成合适的名称。
  2.不通过scanf获取数据,通过参数列表传递数据。
  3.返回值,将函数体执行的结果返回。  当需要通过printf输出时应该考虑返回值.在功能函数中不要输出数据。
  注意:通过返回值返回和通过printf输出的区别。

5. 程序实例
 

求1+2+3+4+5+....+n

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int getsum(int n) {  //形式参数列表
	int res = 0;
	for (int i = 1; i <= n; i++) {
		res += i;
	}
	return res;
}

int main() {  //使用printf  scanf
	//主程序-main函数 --> 测试功能(printf,scanf)
	int res = getsum(10);  //实际参数列表
	printf("%d\n",res);
	
	return 0; // 0 代表main 成功退出
}

运行结果:

 总结:
      使用c语言中的函数可以将一段代码进行封装,在需要使用的时候直接调用即可;使程序更加清晰,方便阅读,易于维护,可提高代码的重用性。


 


 

### 头歌平台中C语言初始化函数的使用方法与示例代码 在C语言中,初始化函数通常用于为变量或数据结构分配初始值。头歌(Tougo)平台提供了丰富的C语言学习资源,包括函数的定义、声明以及初始化方法。以下是关于C语言初始化函数的详细说明和示例代码。 #### 初始化函数的概念 初始化函数是指在程序运行时,为特定变量或数据结构分配初始值的函数。这种函数通常会在程序开始执行时调用,确保所有变量都处于已知状态[^1]。 #### 示例代码:初始化函数的实现 以下是一个简单的C语言初始化函数示例,展示了如何为多个变量分配初始值: ```c #include <stdio.h> // 函数声明 void initializeVariables(int *a, int *b, int *c); int main() { int x = 0, y = 0, z = 0; // 调用初始化函数 initializeVariables(&x, &y, &z); // 输出结果 printf("x = %d, y = %d, z = %d\n", x, y, z); return 0; } // 函数定义 void initializeVariables(int *a, int *b, int *c) { *a = 10; *b = 20; *c = 30; } ``` 上述代码中,`initializeVariables` 函数通过指针参数为变量 `x`, `y`, 和 `z` 分配了初始值[^2]。 #### 初始化数组的示例 除了单个变量,初始化函数还可以用于初始化数组。以下是一个初始化数组的示例代码: ```c #include <stdio.h> // 函数声明 void initializeArray(int arr[], int size); int main() { int array[5]; int size = sizeof(array) / sizeof(array[0]); // 调用初始化函数 initializeArray(array, size); // 输出结果 for (int i = 0; i < size; i++) { printf("array[%d] = %d\n", i, array[i]); } return 0; } // 函数定义 void initializeArray(int arr[], int size) { for (int i = 0; i < size; i++) { arr[i] = i * 2; // 示例:将每个元素初始化为其索引的两倍 } } ``` 在此示例中,`initializeArray` 函数通过循环为数组中的每个元素分配初始值。 #### 注意事项 - 在头歌平台上学习C语言时,建议结合实际项目练习初始化函数的使用。 - 确保在函数声明和定义之间保持一致性,避免编译错误。 - 初始化函数可以提高代码的可读性和可维护性,尤其是在处理复杂数据结构时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值