C语言 函数与程序结构

目录

1.函数的声明与定义

2.函数的参数

 3.函数的返回

4.函数的调用

 5.函数的递归

6.局部变量和全局变量

 7.头文件

8.内部函数和外部函数

 1,内部函数

2,外部函数


1.函数的声明与定义


 
<声明>就好像是告诉别人有个工具叫“削水果刀”,但是还没说这刀长啥样、怎么造。定义呢,就是详细地说这个“削水果刀”是啥样子,用啥材料做的,怎么做出来。比如说,我们想做个能算两个数相加的工具(函数)。
 
声明就是: int add(int num1, int num2);   这就告诉别人有这么个能算两数相加的工具。
 
<定义>就是:
 

int add(int num1, int num2)
{
    return num1 + num2;
}


这就详细地写出这个工具怎么工作,能算出两个数相加的结果。
 

2.函数的参数
 

<参数>就像是给工具的一些材料,让工具根据这些材料来干活。比如算两数相加的函数 add , num1 和 num2 就是参数。就好像你给了两个苹果,让工具去处理。


 
3.函数的返回
 

返回就是工具干完活给你的成果。
 
比如 add 函数算出两数相加的结果,然后把这个结果给你,这就是返回。

#include <stdio.h>

// 两数相加的函数
int add(int num1, int num2) {
    return num1 + num2;
}

int main() {
    int num1 = 5;
    int num2 = 3;
    int sum = add(num1, num2);
    printf("%d 和 %d 相加的结果是: %d\n", num1, num2, sum);

    return 0;
}

 代码中, add  函数接受两个整数参数  num1  和  num2  ,并通过  return num1 + num2;  返回它们的和。在  main  函数中调用  add  函数并输出结果。


4.函数的调用


 
调用就是使用这个工具来干活。
 
比如算 3 和 5 的和,就这么写:

int a = 3;
int b = 5;
int sum = 0;
sum = Add(a,b);    //  这就是调用 add 函数来帮你算
printf("sum=%d\n",sum);


 
5.函数的递归
 

递归就像是自己叫自己帮忙。
 
比如说,算从 1 加到 10 ,可以这样写个递归函数:

int sum(int n)
{
    if (n == 1)
        return 1;
    else
        return n + sum(n - 1);
}


这就像自己不断叫自己,直到条件满足为止。
 

6.局部变量和全局变量


 
局部变量,就像是你放在自己房间抽屉里的东西,只有在你的房间里能用到。
 
全局变量,就像是放在家里客厅大家都能看到、都能用的东西。
 
例如:

#include <stdio.h>

// 全局变量
int globalVar = 10;

void function() {
    // 局部变量
    int localVar = 20;
    printf("局部变量localVar的值为: %d\n", localVar);
    printf("全局变量globalVar的值为: %d\n", globalVar);
}


 7.头文件


 
头文件(后缀  .h)就像是个说明书的目录。
 
比如说,你有很多工具的说明,把它们的名字和大概介绍放在一个文件里,这就是头文件。要用哪个工具,就去这个目录里找。

常见的有:
 
 <stdio.h>  :用于输入输出操作,比如从键盘读取数据,向屏幕输出数据。
 
 <stdlib.h>  :包含一些通用的工具函数,比如内存分配和随机数生成。
 
 <string.h>  :用于处理字符串相关的操作,像字符串的复制、比较等。
 
 <math.h>  :进行各种数学计算,像三角函数、指数、对数等。
 
 <time.h>  :处理和时间有关的操作。
 
 <ctype.h>  :用于字符分类和转换。


8.内部函数和外部函数


 
1,内部函数

内部函数(也称为静态函数)是指在函数的返回类型前加上  static  关键字修饰的函数。

内部函数只能在其所在的源文件中被使用,其他源文件不能调用它。内部函数就像是家里自己人用的工具,只能在家里用。

 static  关键字作用:

  1. 修饰局部变量(局部变量的生命周期变长)
  2. 修饰全局变量,改变了变量作用域,使静态全局变量只能在自己所在源文件内部使用,其他源文件无法访问
  3. 修饰函数。一个函数一般具有外部链接属性(一个函数只能在自己所在源文件内部使用),如果被 static修饰 则具有内部链接属性(其他源文件无法访问)。


2,外部函数

外部函数,就像是可以借给邻居用的工具。

外部函数是指默认情况下的函数,如果没有使用  static  关键字修饰,就是外部函数。外部函数可以被其他源文件通过  extern  关键字声明后调用。
 
以下是外部函数的示例:
 
假设有两个源文件: file1.c  和  file2.c
 
 file1.c  内容如下:
 

#include <stdio.h>

void externalFunction() {
    printf("这是一个外部函数\n");
}


 
 file2.c  内容如下:
 

#include <stdio.h>

// 声明外部函数
extern void externalFunction();

int main() {
    externalFunction();  // 调用来自 file1.c 的外部函数
    return 0;
}


 

  • 32
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值