C语言---函数知识点总结---函数的调用,嵌套调用和链式访问

简介: C语言---函数知识点总结---函数的调用,嵌套调用和链式访问

我们知道函数调用其实就是把实参的值传递给形参,形参在函数内部发挥作用,函数并实现我们想实现的功能。

函数调用分为两种

传值调用和传址调用,我们这里只需明白传值调用就行,学到指针后会讲传址调用。


我们调用函数必须满足三个条件

1.调用的函数必须是已经定义过的函数,如库函数,自定义函数。

2.库函数使用时需要写对应的头文件。

3.如果我们定义的函数在主调函数后面,需要在主调函数中声明被调函数。(因为电脑读代码是从上往下读的,我们被调用的函数在下面,电脑先读主调函数,当然不认识被调用函数了)


函数声明的格式,我个人喜欢抄 被调函数的第一行。也就是函数的首部

如:

#include <stdio.h>
int main ()
{
    int MAX(int x,int y);
    int x = 1;
    int y = 2;
    int c = MAX(x,y);
    printf("%d\n",c);
    return 0;
}
int MAX(int x,int y)
{
    return x>y?x:y;
}

这时候我们被调函数就在主调函数后面,需要去在主调函数的内部声明。当然如果我们可以保证每次被调用函数在主调函数上面,就不需要写函数声明。

函数的嵌套调用

函数的嵌套调用就是被调函数里面调用函数。

而函数定义不可以嵌套,我们是不允许在一个函数内定义函数的,每一个函数都是平行独立的。

函数可以嵌套调用,但不可以嵌套定义

如:

#include <stdio.h>
int MAX2(int x,int y)
{
    return x>y?x:y;
}
int MAX4(int n1,int n2,int n3,int n4)
{
    int x = MAX2(n1,n2);
    int y = MAX2(x,n3);
    int z = MAX2(y,n4);
    return z;
}
int main ()
{
    int num1 = 1;
    int num2 = 2;
    int num3 = 3;
    int num4 = 4;
    int a = MAX4(num1,num2,num3,num4);
    printf("%d\n",a);
    return 0;
}


我们来比较四个数的最大数,在MAX4中嵌套了两次MAX2,这就是嵌套使用。

函数的链式访问

函数的链式访问就是把一个函数的返回值作为另外一个函数的参数。

如:

#include <stdio.h>
int MAX(int x,int y)
{
    return x>y?x:y;
}
int main ()
{
    int x = 1;
    int y = 2;
    int z = 3;
    int a = MAX(z,MAX(x,y));
    printf("%d\n",a);
    return 0;
}


我们把x跟y的较大值直接作为下一次比较的参数了,这就是函数的链式访问。

相关文章
|
1天前
|
C语言
【C语言】字符分类函数与字符转换函数
【C语言】字符分类函数与字符转换函数
7 1
|
1天前
|
程序员 编译器 C语言
C语言之函数与参数
C语言之函数与参数
5 0
|
2天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
2天前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
4天前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
7 0
|
4天前
|
C语言 Windows
C语言中的fopen与fclose函数详解
C语言中的fopen与fclose函数详解
11 1
|
4天前
|
C语言
深入理解C语言中的printf函数及数据输出
深入理解C语言中的printf函数及数据输出
13 0
|
17天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
28 0
|
28天前
|
编译器 C语言 C++
【C语言】memset()函数(内存块初始化函数)
【C语言】memset()函数(内存块初始化函数)
26 0
|
28天前
|
编译器 C语言 C++
【C语言】memcpy()函数(内存块拷贝函数)
【C语言】memcpy()函数(内存块拷贝函数)
42 0