【C语言基础(五)】函数

本文详细介绍了C语言中的函数概念,包括定义、参数、返回值、数据类型、原型声明、调用规则、参数传递方式(值传递与数组)、存储类别(局部变量、全局变量、静态存储和动态存储)以及递归调用和静态局部变量的使用。以实例演示了如何计算阶乘和数组操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、函数

在这里插入图片描述

1.1、函数的定义

在这里插入图片描述

1.2、函数的参数

在这里插入图片描述

1.3、形参和实参的示例

#include<stdio.h>
int squarer(int x);
void main(){
	int i;
	for(i =1; i <=5; i++)
		printf(" %d  * %d = %d\n ", i,squarer (i));//实际参数
}
int squarer(int x)//形式参数
{
	int iResult = 0;
	iResult  = x * x;
	return iResult;
}

1.4、函数的返回值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.5、函数的数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.6、函数返回值说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7、函数原型和函数声明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.8、调用函数

在这里插入图片描述

1.9、函数调用条件

在这里插入图片描述
在这里插入图片描述

1.10、文件包含

在这里插入图片描述
在这里插入图片描述

1.11、函数的嵌套调用

在这里插入图片描述
在这里插入图片描述

1.12、函数的递归调用

在这里插入图片描述
在这里插入图片描述

1.13、利用递归求阶乘示例

#include <stdio.h>
int factorial( int iNum);
int main() {
	int n=10;
	printf(“i=%d factorial: %d\n”,i, factorial(n));//计算10的阶乘
	return 0;
}
int factorial( int iNum)
 {
	if ( iNum <= 1 )
      	return 1;
   	else
      	return (iNum*factorial(iNum-1));
}

2、参数传递

在这里插入图片描述

2.1、按值传递

在这里插入图片描述

2.2、数组作为函数参数

在这里插入图片描述
在这里插入图片描述

2.3、一维数组作为参数示例

//形参和实参都用数组名,如:
void f(int aiNO[],int nNum)
{
	 aiNO[0] = 1;
	 aiNO[1] = 2;
                nNum   = 3;
}
void main()
{
	int aiNO[10]={0},nNumber=5;
            f(aiNO, nNumber);
            printf(%d,%d,%d”, aiNO[0], aiNO[1], nNumber);
	//观察这三个值有什么变化?
}

2.4、数组作为函数的形参

在这里插入图片描述

3、数据传递的几种方式

在这里插入图片描述

3.1、局部变量和全局变量

在这里插入图片描述

3.2、静态存储和动态存储

在这里插入图片描述
在这里插入图片描述

4、存储类别

  • 内存中的存储区域包括下面几个部分:
    - 程序代码区:存放函数体的二进制代码
    - 静态区/全局区(static):全局变量和静态变量的存储 区域
    - 堆区(heap):程序员分配释放。
    - 栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值
    - 常量区:字符串、数字等常量存放在常量区。const修饰的全局变量存放在常量区。程序运行期间,常量区的内容不可以被修改。

在这里插入图片描述
在这里插入图片描述

5、静态的局部变量

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值