结语里有所有演示代码合集
函数
系统函数
形如上:
系统函数是已经被定义好了的,并且使用时,需要引用头文件。
例如:
使用 printf 时。需要用 #include<stdio.h>
使用 strlen 时。需要用 #include<stdlib.h>
并且,他们的使用规格和使用用途,都已经被固定。
例如:
使用 For 函数。一定是 for(i=0;i<10;i++);
使用 printf("%d ",a); 一定是加引号,后面是逗号隔开写表达式。
优点:为C语言确立同意了几个常用的函数的规范。大家使用时更一致。便于互相理解。
缺点:并不能概括所有所需函数。
自定义函数
形如上:
可见,并不存在”Add“函数。但是,我这里却用它来求和。
在主函数里,我用到了函数Add,并在主函数外,定义了该函数,详细写了函数的内容。
创造函数思路:
我们这里,希望将数a,b传给一个函数,让它帮我们求和,所以,我们设一个函数名称,然后在函数括号里填入我们想要它接受的值,并用逗号隔开。
该例题中,我想要将两个数值传过去求和,所以这里写(a,b)
(自定义函数名称必须与该函数功能相关,便于别人观看,和名称的区分)
函数定义思路:
定义位置,主函数外。可以在其他源文件里面文件。这里主要讲在同一个源文件里的情况。
最好将函数定义放在主函数上面,因为读取代码时,如果读主函数还没有看到自定义函数的定义,却现在主函数看到,自定义函数的使用。代码会很疑惑!
毕竟此时还见到人,就听见声音了,换谁来了都疑惑的很那。
对于函数自身的设计:
- 首先确认函数的返回值
如果希望函数返回一个整型,就用 int 定义;如果希望函数返回一个符号型,就用 char 定义
同时主函数里面也要定义一个变量接受哟!
例如:
int Add(int x, int y )
- 然后确认函数接受值的类型
如果想接收整型就用 int 创造接受空间;如果想接收字符型就用 char 创造接受空间;而且需要接收多个时,需要用逗号隔开。
同时后续自定义函数里面也就是对应的接受字母,而不是原来的字母。
但你也可以继续用原来的字母来定义。
例如:
int Add(int x, int y )
函数的递归
形如上:
该函数功能是,将输入的数字每一位顺序打出。
我们可以发现,在 swep 函数里,还有一个 swep 函数。
根据上方图片,按照所示步骤,可以看到,在 swep 函数里面又进入新的 swep 函数中,形成套娃的形式。
只有最后一个执行完,才能往前一个函数继续执行。
一定要有函数的结束条件。否则会陷入死循环,出不来!
如例题中的:
当 i>9时,才会进入新的 swep 函数。在每次进入时,都会被除10。用来减小 i 的值。
直到 i <10时,就跳出了循环。
结语
有愿意讨论的,欢迎私信我。
C语言是有趣的,严谨的。希望遇到志同道合的朋友,一同前行!
int Add(int x, int y)
{
int c = 0;
c = x + y;
return c;
}
int main()
{
int a = 10;
int b = 20;
int w = Add(a, b);
printf("%d \n", w);
return 0;
}
void swep(int x)
{
if (x > 9)
{
swep(x / 10);
}
printf("%d ",x%10);
}
int main()
{
int i = 0;
scanf("%d", &i);
swep(i);
return 0;
}