C语言之函数

函数

为什么需要函数

避免了重复性操作

有利于程序的模块化

什么叫函数

逻辑上:能够完成特定功能的独立的代码单元

物理上:

  能够接受数据【当然也可以不接受数据】

  能够对接受的数据进行处理

  能够将数据处理的结果返回【当然也可以不返回任何值】

总结:函数是一个工具,它是为了解决大量类似问题而设计的

   函数可以当做一个黑匣子

如何定义函数

函数的返回值 函数的名字(函数的形参列表)

{

  函数体

}

  1. 函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体方法
  2. return表达式的含义:
  3. 函数返回值的类型也称为函数的;诶新,因为如果函数名前的返回值类型和函数执行体中的return 表达式;中表达式的类型不同的话,则最终函数返回值的类型,以函数名前的返回值类型为准
 1 #include <stdio.h>
 2 
 3 void max(int i, int j) 
 4 {
 5     if (i > j)
 6         printf("%d\n", i);
 7     else
 8         printf("%d\n", j);
 9 
10 }
11 
12 int main(void)
13 {
14     
15     int a, b,c,d;
16     a = 3, b = 5,c=8,d=6;
17     max(a, b);
18     max(c, d);
19 
20     return 0;
21 }

函数的分类

有参函数和无参函数

有返回值函数和无返回值函数

库函数和用户自定义函数

值传递函数和地址传递函数

普通函数和主函数(main函数)

  • 一个程序必须有且只有一个主函数
  • 主函数可以调用普通函数,普通函数不能调用主函数
  • 普通函数可以相互调用
  • 主函数是程序的入口,也是程序的出口
 1 #define  _CRT_SECURE_NO_WARNINGS 1
 2 #include <stdio.h>
 3 
 4 bool IsPrime(int val) 
 5 {
 6     int i;
 7 
 8     for ( i = 2;i < val;i++) 
 9     {
10         if (val % i == 0)
11             break;
12     }
13 
14     if (i == val)
15         return true;
16     else
17         return false;
18 }
19 
20 int main(void) 
21 {
22     int m;
23 
24     scanf("%d", &m);
25     if (IsPrime(m))
26         printf("Yes!\n");
27     else
28         printf("No!\n");
29 
30     return 0;
31 }

函数的声明

#include <stdio.h>

void f(void); //函数的声明,分号不能丢掉

int main(void)
{
    f();

    return 0;
}

void f(void) 
{
    printf("哈哈哈!\n");
}

注意的问题

函数调用和函数定义的顺序

  • 如果函数调用写在了函数定义的前面,则必须加函数前置声明
  • 函数前置声明的作用:
    • 告诉编译器即将可能出现的若干个字母代表的是一个函数
    • 告诉编译器即将可能出现的若干个字母所代表的函数的形参和返回值的具体情况
    • 函数声明是一个语句,末尾必须加分号
    • 对库函数的声明是通过#include<库函数所在的文件的名字.h>来实现的
  • 形参和实参
    • 个数相同 位置一一对应,数据类型必须相互兼容
  • 如何在软件开发中合理的设计函数来解决实际问题  
    • 一个函数的功能尽量独立,单一
    • 多学习,多模仿牛人的代码
 1 #define  _CRT_SECURE_NO_WARNINGS 1
 2 #include <stdio.h>
 3 
 4 //本函数的功能是判断是否是素数
 5 bool IsPrime(int); //函数的声明,分号不能丢掉
 6 
 7 //本函数的功能是把1到n之间所有的素数显示器上输出
 8 void TraverseVal(int  n);
 9 
10 int main(void)
11 {
12     int val;
13     int i;
14 
15     scanf("%d" , &val);
16 
17 
18     TraverseVal(val);
19 
20 
21     return 0;
22 }
23 
24 bool IsPrime(int m)
25 {
26     int i;
27     
28     for (i = 2; i < m;++i) 
29     {
30         if (0 == m % i) 
31             break;
32     }
33     
34     if (i == m && i != 2)
35         return true;
36     else
37         return false;
38 
39 }
40 
41 void TraverseVal(int n)
42 {
43     int i;
44 
45     for (i = 2;i <= n;i++)
46     {
47         if (IsPrime(i))
48             printf("%d\n", i);
49     }
50 }

常用的系统函数

函数是C语言的基本单位,类是Java,C#,C++的基本单位

double sqrt(double x);求x的平方根

int abs(int x);求x的绝对值

double fabs(double x) 求x的绝对值

递归

 

posted @ 2024-05-03 11:58  万溪汇海  阅读(2)  评论(0编辑  收藏  举报