【从零开始的 C 语言笔记】第二十五篇-副函式

不怎么重要的前言

上一篇介绍了要设计一个程式时会使用到的流程图,如果对于凭空想像程式怎么写有障碍的朋友,可以考虑使用流程图的方式来辅助写程式!

今天我们来介绍另一个很重要的语法--「副函式」!


副函式?

不晓得大家还记不记得,在遥远的第三篇我们有稍微的介绍主函式(main function),一个程式主要运行的部分就是主函式了,大家有没有想过既然有主函式,会不会有副函式之类的呢?

今天我们就来介绍副函式吧!

先来举一个只有主函式的判断奇偶数程式:

#include <stdio.h>int main(){    int n;    scanf("%d", &n);        if(n%2==0){        printf("even.\n");    }    else{        printf("odd.\n");    }    return 0;}

http://img2.58codes.com/2024/20142565kaqBWPYiCK.png

转换成由副函式来判别后传值(偶数回传0,奇数回传1):

#include <stdio.h>int judge_num(int);int main(){    int n;    scanf("%d", &n);    printf("%d", judge_num(n));    return 0;}int judge_num(int num){    if(num%2==0){        return 0;    }    else{        return 1;    }}

http://img2.58codes.com/2024/20142565LqNUIBN3L0.png

也可以由副函式直接代劳输出:

#include <stdio.h>void judge_num(int);int main(){    int n;    scanf("%d", &n);    judge_num(n);        return 0;}void judge_num(int num){    if(num%2==0){        printf("even.\n");    }    else{        printf("odd.\n");    }}

http://img2.58codes.com/2024/20142565xp4H0TpArt.png


正式使用副函式

规则

(1) 宣告函式:就像变数在使用前需要宣告,副函式也必须在使用之前就宣告好。
http://img2.58codes.com/2024/201425651NZHvdZTJg.png

(2) 副函式的资料型态:就像变数有不同的资料型态一样,但函式中的资料型态是针对回传值的型态,且与变数不同的是也有无回传值的资料型态(void)。
http://img2.58codes.com/2024/20142565J6ATXcAp50.png
http://img2.58codes.com/2024/20142565a2Nfjbn92f.png

(3)副函式可要求传入值:副函式可以接受其他函式的传入值进行处理使用,有传入值的话呼叫副函式时也要记得传值。
http://img2.58codes.com/2024/20142565AhlIGsZUtK.png
http://img2.58codes.com/2024/20142565l479mv2Tv0.png

应用
写一个程式,让使用者输入整数n,并把小于等于整数n的所有质数列印出来。

我们可以把判断质数的部分单独拆出来,用另一个副函式去处理,这样主函式看起来就会清楚很多:

#include <stdio.h>int is_num_prime(int);int main(){    int n;    scanf("%d", &n);    printf("小于等于n之所有质数: ");    for(int i=2; i<=n; i++){        if(is_num_prime(i)==0){            printf("%d ", i);        }    }    return 0;}int is_num_prime(int num){    int k=0;    for(int i=2; i<num; i++){        if(num%i==0){            k=1;            break;        }    }    if(k==0){        return 0;    }    else{        return 1;    }}

http://img2.58codes.com/2024/20142565tBb4aD7bU8.png


看到这里就大概介绍完副函式的概念了,这是一个很重要的语法,除了可以增加函式的阅读性(把单独功能拆出来写),也可以让程式愈发简化容易维护(某功能出错只要找那个功能的部分确认就好)。

下一篇我们再来详细介绍变数的生命週期吧!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章