C Primer Plus 第9章——第一篇

你该逆袭了


一、复习函数

1、定义带形式参数的函数

void dibs(x, y, z)
char x, y, z;

void dibss(x, y)  //这里,圆括号中只有参数列表,而参数的类型在后面声明。
int x;
char y;

//这是 ANSI C 之前的形式,现在已经将其废弃不用

在这里插入图片描述

2、声明带形式参数函数的原型

在这里插入图片描述

3、使用 return 从函数中返回值

#include <stdio.h>

int imin(int, int);

int main()
{
   
	int num1 = 0; 
	int num2 = 0;

	printf("enter a pair of integers (q to quit):\n");
	while (scanf("%d %d", &num1, &num2) == 2)
	{
   
		printf("the lesser of %d and %d is %d.\n",
			num1, num2, imin(num1, num2));
		printf("enter a pair of integers (q to quit):\n");
	}
	printf("bye\n");

	return 0;
}

int imin(int n, int m)
{
   
	int min = 0;

	if (n < m)
		min = n;
	else
		min = m;

	return min;
}

(1)、返回值不仅可以赋给变量,也可以被用作表达式的一部分。

answer = 2 * imin(z, zstar) + 25;
printf("%d\n", imin(-32 + answer, LIMIT));

(2)、返回值不一定是变量的值,也可以是任意表达式的值。

imin(int n, int m)
{
   
	return (n < m) ? n : m;
}

(3)、如果函数返回值的类型与函数声明的类型不匹配怎样?

在这里插入图片描述

(4)、return 用来终止函数并把控制返回给主调函数的下一条语句。

在这里插入图片描述

return; 的作用

在这里插入图片描述

4、函数类型

声明函数时必须声明函数的类型。带返回值的函数类型应该与其返回值类型相同,而没有返回值的函数应声明为 void。

在这里插入图片描述

(1)函数声明既可以在主调函数外面,也可以放在主调函数里面。

在这里插入图片描述

二、ANSI C 函数原型

1、无参数和未指定参数

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

2、函数原型的优点

在这里插入图片描述

三、递归

结束递归 是使用递归的难点,因为如果递归代码中没有终止递归的条件测试部分,一个调用自己的函数会无限递归。

1、演示递归

如果函数使用%p转换说明打印地址,如果你的系统不支持这种格式,请使用 %u 或者 %lu 代替 %p。

#include <stdio.h>

void digui(int n);

int main()
{
   
	digui(1);

	return 0;
}

void digui(int m)
{
   
	printf("%d 的地址是 %p\n"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值