C语言学习 从入门到进阶
Posted Jack Chao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言学习 从入门到进阶相关的知识,希望对你有一定的参考价值。
C语言学习 从入门到进阶(七)
书接上文,我们继续了解一些函数
函数的定义和函数的声明
定义和声明是不一样的。声明是一定要在函数调用之前的,定义可以在调用之前或者调用之后。我们来看看下面一段有意思的代码:
int main()
{
int a = 10;
return 0;
}
#include<stdio.h>
这样的代码可以运行嘛?
答案是:可以的
是不是很奇怪,这个跟我们之前的不太一样。其实我们可以想想,我们有没有用到函数?是不是只写了一个main函数。那我们再想想这个#include<stdio.h>是头文件。头文件是用于库函数的是不是。
那我们没有用到库函数,是不是不管#include<stdio.h>放到哪里我们都不管的。所以函数的位置很随意又很有规律。
函数声明
这个就有点意思了。函数的声明可以让我们多方协作来完成目标。我们只要建立一个.h的头文件就可以了。这样说是不是很抽象,我们来个实列。
这是我在学习的时候实现的一个计算器。你可以发现,我们的main函数之前没有任何的函数定义,只是#include<stdio.h>被别的替代了。这样我们就可以将一个工程实现了多人协作,有人写加法,有人写减法,有人写除法,有人写乘法。这样就很方便,还具有私密性。
总结一下:函数调用之前一定要声明,不一定在调用之前要定义。
函数递归
递归就是自己直接或者间接调用自己的过程,就是把一个大的问题拆解成多个问题然后一一剖解。我们先来看看实列
#include<stdio.h>
void dgprint(int a)
{
if (a == 0)
{
return;
}
else
{
dgprint(a / 10);
printf("%d ", a % 10);
}
}
int main()
{
int a = 1234;
dgprint(a);
return 0;
}
大家可以想象这个递归,其实和循环差不多。
递归的深度剖析在这边不做太多赘述,我会开一个新的篇章来介绍,到时候大家好好捧场,谢谢。
不过还是要基础介绍一些。递归有两个条件:1.结束条件 2.每次递归都要去接近这个结束条件
以上是关于C语言学习 从入门到进阶的主要内容,如果未能解决你的问题,请参考以下文章