Skip to content

C 语言入门(六)

前言

欢迎,欢迎,今天迎来的是 “函数” 大神😇

六、函数简介

6.1 函数声明

类似于数学中的 “函数”,有输入,输出和对应法则🧐

函数是一段可以重复执行的代码。它可以接受参数,完成对应的操作。

c
int plus(int a,int b) {
  return a + b;
}

// 函数的调用(函数必须声明后使用,否则会报错)
int a = plus_one(34);

函数的声明

  1. int:返回值类型,函数声明前需要给出返回值的类型。

  2. plus:自定义函数名,遵循命名规范。

  3. int a:声明参数的类型和参数名,可以有多个参数。

  4. return:给出函数的返回值后,就会结束函数的调用。如果函数没有返回值,可以省略return语句,或者写成return;

viod 关键字

常用在函数语句哦😮

void 关键字C语言中,主要用于表示“无类型”或“无返回值”。

c
void myFunc(void) {
  // ...
}

扩展

递归

可以想象你前后都有一面镜子,看向其中一面,你就会发现镜中无限“递归”🧐

递归指的是在函数的定义中使用函数自身的方法。

c
// 斐波那契数列
unsigned long Fibonacci(unsigned n) {
  if (n > 2)
    return Fibonacci(n - 1) + Fibonacci(n - 2);
  else
    return 1;
}

6.2 函数的参数

c
int plus(int a,int b) {
  return a + b;
}

// 函数的调用(函数必须声明后使用,否则会报错)
int a = plus_one(34);
  • 形参:形参是函数定义时的参数,它们在函数体内用作占位符。其作用是接收调用函数时传入的实际参数。例如 a
  • 实参:实参是函数调用时传递给函数的具体值或变量。实参的值会被传递给形参。例如 3

参数传递方式

水了,水了😋

可变参数

了解即可,写普通代码也是很少用了🤔

有些时候,函数的参数数量是不确定的,可以使用省略号...表示可变数量的参数。

c
int myFun (int a, ...);

6.3 入口函数

别打成 mian() 就行😒

C 语言规定,main() 函数是程序的入口函数

  • 所有的程序一定要包含一个main()函数。

  • 程序总是从这个函数开始执行,如果没有,该程序就无法启动。

  • 其他函数都是通过它引入程序的。

c
int main(void) 
{
  printf("Hello World\n");
  return 0; //可忽略(建议写上) 
}

//return 0; 表示函数结束运行,返回 0
//C 语言约定,返回值 0 表示函数运行成功,如果返回其他非零整数,就表示运行失败

函数原型

“函数必须先声明,后使用”,那就是说必须在main()函数前声明呗?🤔

因为程序会先运行main()函数,所以其他函数都必须在main()函数之前声明。否则编译时会产生警告。也可以在程序开头处给出函数原型,函数就可以先使用、后声明。

所谓函数原型,就是提前告诉编译器,每个函数的返回类型和参数类型。具体的函数实现可以后面再补上。

c
int plus(int a,int b);

int main(int num) {
  return plus(3, 4);
}

int plus(int a,int b) {
  return a + b;
}

6.4 函数指针

写在最后

如果一段代码重复使用且逻辑完整建议拆分成函数🤔

函数算是以上文章的“结合体”了,你可以在函数中写变量、运算或控制流。函数是一个程序的“子体”,一起组成了一个完整的程序。

如有转载或 CV 请标注本站原文地址