☰
为什么C语言中要学函数?
2026/10/8 2:05:03 网站建设 项目流程

文章目录
前言

一、函数是什么,有什么用?
二、函数基本语法
三、函数的声明与定义
四、参数的传递
五、四类函数(按有无参数/返回值)
六、总结


前言

函数是C程序的基本组成单元,也是模块化编程的核心。本文从“是什么、为什么用、怎么写”三个维度,系统讲解C语言函数的定义、声明、参数传递、核心知识点,配合可运行代码与避坑指南,适合零基础入门和复习巩固。


一、函数是什么,有什么用?

  1. 函数是什么:函数(Function)​ 是一段完成特定功能的、可重复调用的代码块。在C语言中,函数由函数名、参数列表、返回类型、函数体组成。程序从main 函数开始执行,通过调用其他函数完成具体任务。
    (1)类比:函数就像工厂里的一台机器——你放入原材料(参数),机器加工后产出产品(返回值)。

2.函数有什么用:函数是将一段实现特定功能的代码封装起来,给它起一个名字。程序可以通过函数名反复调用这段代码,从而实现代码的重复使用,提高程序的可读性和可维护性。
(1)没有函数的话,你每想算一次加法,都得重新写一遍加法的步骤。有了函数,写一次,以后随时"喊"它来干活。
(2)有了函数后可以将重复的逻辑进行打包,起个变量名字,想用时就喊他。这样可以减少大量重复逻辑的代码,改公式时只需要修改函数一处,逻辑清晰易懂。

二、函数基本语法

1 .通用格式

代码如下(示例):

返回类型 函数名(参数列表){// 函数体return返回值;// 若返回类型不是 void,一般要有 return

2.完整示例

代码如下(示例):

#include<stdio.h>intadd(inta,intb){intsum=a+b;returnsum;}intmain(void){intresult=add(3,5);printf("3 + 5 = %d\n",result);return0;}

3.无返回值函数

代码如下(示例):

voidprint_hello(void){printf("Hello, C Functions!\n");}

三、函数声明与定义

1.定义(Definition)

包含函数体的完整实现:

intmul(inta,intb){returna*b;}

2. 声明/原型(Declaration / Prototype)

告诉编译器“有这个函数、长什么样”,不包含函数体:

intmul(inta,intb);/* 函数声明 */

3. 声明与定义的配合

#include<stdio.h>intmul(inta,intb);/* 函数声明 */intmain(void){printf("4 * 5 = %d\n",mul(4,5));return0;}intmul(inta,intb)/* 函数定义 */{returna*b;}

规则:如果函数在 main 之后定义,必须在调用前声明,否则编译器会报错。


四、参数的传递

1 值传递(默认方式)

C语言所有参数传递都是值拷贝——把实参的值复制一份给形参,函数内修改形参不影响外部:

voidincrement(intx){x=x+1;printf("函数内 x = %d\n",x);}intmain(void){inta=5;increment(a);printf("函数外 a = %d\n",a);/* 仍是5 */return0;}

输出:
函数内 x = 6
函数外 a = 5

2 指针传递(模拟“引用传递”)

要修改外部变量,必须传地址:

voidincrement(int*x){*x=*x+1;printf("函数内 *x = %d\n",*x);}intmain(void){inta=5;increment(&a);printf("函数外 a = %d\n",a);/* 变成6 */return0;}

3 经典案例:交换两个数

voidswap(int*p,int*q){inttmp=*p;*p=*q;*q=tmp;}intmain(void){intx=10,y=20;printf("交换前: x=%d, y=%d\n",x,y);swap(&x,&y);printf("交换后: x=%d, y=%d\n",x,y);return0;}

五、四类函数(按有无参数/返回值)

1. 无参无返回

语法示例:void log_start(void)
说明:只执行操作,不接收参数也不返回结果
代码示例:

voidlog_start(void){printf("=== 程序启动 ===\n");}

2. 有参无返回

语法示例:void print_sum(int a, int b)
说明:接收参数进行处理,无返回值
代码示例:

voidprint_sum(inta,intb){printf("%d + %d = %d\n",a,b,a+b);}

3. 无参有返回

语法示例:int get_default(void)
说明:不接收参数,但返回处理结果
代码示例:

intget_default(void){return100;}

4. 有参有返回

语法示例:int max(int a, int b)
说明:最常用形式,接收参数并返回结果
代码示例:

intmax(inta,intb){returna>b?a:b;}

六、 总结

总结:C语言函数是模块化编程的基石。了解定义/声明、值传递,就能初步了解C语言函数的核心,为接下来更复杂的函数进行铺垫。多写多练,从模仿到独立设计,逐步建立编程思维。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询