C语言知识点之 函数2

简介: C语言知识点之 函数2

1.

函数的声明及定义

声明:只要在函数调用之前声明即可,

先声明后使用

定义:包含函数体,包含函数的实现过程

在工程中,函数的声明写在头文件中,如:add.h 而定义写在源文件中

在声明时,直接写

#include“add.h”

目的:为了方便多人协作:

以及:代码保护

2.

void 作为返回值类型的函数无返回值

3.

将函数放入静态库

add.h 变成add.lib

导入静态库:

#pragma comment(lib,”add.lib”)

4.

函数递归

递归:程序调用自身的编程技巧

即递推+回归

主要的思考方法:大事化小:即减小代码量

递归的条件:

a.存在限制条件

b.每次递归调用之后越来越接近限制条件

如果一直递归,栈的内存不足,会发生栈溢出:Stack overflow

如图片中的函数

递推:打印了‘1’

回归:依次打印‘2’,‘3’,‘4’

提示:如果递归好想、没有明显的缺陷,那就可以使用递归

不然还是用迭代(循环)

5.

函数之所以能实现调用

是因为函数在调用时,会在内存中创建一个函数栈帧,回归完成后,函数栈帧就销毁

点击此处跳转至另一篇文章:函数栈帧的创建和销毁

6.

strlen 返回类型:size_t

是无符号整型,即unsigned int类型

用%zd或%u打印

7.

应用:

尝试使用递归实现以下程序:

汉诺塔问题//青蛙跳台阶问题

相关文章
|
16小时前
|
C语言
C语言prinf函数
C语言prinf函数
10 4
|
1天前
|
C语言
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
5 1
|
1天前
|
C语言
【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
|
1天前
|
存储 C语言
【C语言基础篇】字符串处理函数(三)strcat的介绍及模拟实现
【C语言基础篇】字符串处理函数(三)strcat的介绍及模拟实现
|
1天前
|
C语言
【C语言基础篇】字符串处理函数(二)strcpy的介绍及模拟实现
【C语言基础篇】字符串处理函数(二)strcpy的介绍及模拟实现
|
1天前
|
C语言
【C语言基础篇】字符串处理函数(一)strlen的介绍及模拟实现
【C语言基础篇】字符串处理函数(一)strlen的介绍及模拟实现
|
1天前
|
存储 缓存 移动开发
【C语言基础篇】scanf()函数详解
【C语言基础篇】scanf()函数详解
|
1天前
|
C语言 C++
C语言printf()函数详解
C语言printf()函数详解
|
1天前
|
搜索推荐 C语言
c语言qsort函数的模拟实现
c语言qsort函数的模拟实现
7 1
|
1天前
|
编译器 C语言 C++
初识c语言函数
初识c语言函数
7 0