C语言:函数

14天阅读挑战赛

1.函数定义

  • 函数的组成部分

函数返回值类型      函数名(形参)

{

        函数体;

        return   返回值;

}

注意:

        函数返回值类型必须和return后面的数据类型一致

//每个C语言程序必有的一个函数

int main()
{
    return 0;
}


/*        
int : 返回值类型 , 

main : 函数名(其实就是标识符,就是一个名字)
() : 描述参数
return 0 : 函数返回值
*/
//函数中没有参数,可以用void表示
int main(void)
{
    return 0;
}

void main()
{
    //这种函数返回值类型为void
    //没有return 0;这种形式,但是可以写成return;
}
  • 函数调用: 函数名(函数参数)
#include <stdio.h>

void hanshu(int x)
{
	printf("x=%d",&x);
	return;                
	printf("函数结束");
}

int main()
{
	hanshu(3);		//调用函数
}

 return的作用:结束当前函数,后面的语句将不会执行 

2.函数参数

  • 无论传入什么参数,都是用赋值的方式
  • 两种参数方式
    • 值传递
    • 地址传递

(1)值传递,这里main函数的aa值没有发生变化

(2)地址传递,这里main函数的aa值发生了变化

 当函数需要修改实参的时候,需要传入实参的地址

函数中修改普通变量,要传入普通变量的地址(一级指针),在函数中用的是:*指针(一级)

②函数中修改一级指针,需要传入一级指针地址(二级指针),在函数中用的是:*指针(二级)

#include <stdio.h>

// 每一个函数都有独立一个运行空间(栈区)
void modify1(int a)	//int a = aa = 999
{
	a = 100;
	printf("modify1中a的值为:%d\n", a);
}

void modify2(int* a)
{
	*a = 100;
	printf("modify2中*a的值为:%d\n", *a);
}

int g_num = 678;	//设置全局变量
void modify3(int** p)
{
	*p = &g_num;
}

int main()
{
	int aa = 999;
	//modify1(aa);
	//printf("main中aa的值为:%d\n", aa);
	//modify2(&aa);
	//printf("main中aa的值为:%d\n", aa);
	int* p = &aa;	//*p等效于aa
	printf("main中*p的值为:%d\n", *p);
	modify3(&p);
	printf("main在调用modify3后*p的值为:%d\n", *p);
}
  • 形参:函数定义的参数
  • 实参:函数调用时的参数

#include <stdio.h>

int Max(int a, int b)	//形参 int a, int b
{
	//int a=5,int b=6;
	return a > b ? a : b;
}

int main()
{
	//调用函数时,形参和实参类型要一致
	printf("%d\n", Max(5, 6));	//实参  5,6
    return 0;
}

3.函数返回值

函数返回值函数调用后的唯一遗留物

4.函数递归调用

  • 调用方式:函数名(函数参数)
    • 函数参数必须和函数定义时候参数类型一致
    • 若不一致,可以转换的不会报错,不可以转换的它就会报错
  • 嵌套调用
    • 以另一个函数的返回值当做参数嵌套
    • 通过参数的递推,形参的递归调用(自己调用自己)
      • 退出性条件
      • 推导公式(数学推导,归纳法)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值