首页 > 其他分享 >C 语言函数:入门指南

C 语言函数:入门指南

时间:2023-12-12 22:32:36浏览次数:24  
标签:指南 myFunction return 入门 int sum printf 函数

C 语言中的函数声明和定义

您可以通过以下方式创建并调用函数:

// 创建一个函数
void myFunction() {
  printf("我刚被执行了!");
}

int main() {
  myFunction(); // 调用函数
  return 0;
}

一个函数包括两个部分:

  • 声明:函数名称、返回类型和参数(如果有)
  • 定义:函数体(要执行的代码)
void myFunction() { // 声明
  // 函数体 (定义)
}

为了优化代码,建议将函数的声明和定义分开。

您经常会看到 C 程序在 main() 之前有函数声明,在 main() 之后有函数定义。这将使代码更整齐,更易于阅读:

// 函数声明
void myFunction();

// 主方法
int main() {
  myFunction(); // 调用函数
  return 0;
}

// 函数定义
void myFunction() {
  printf("我刚被执行了!");
}

另一个例子:

如果我们使用上一章关于函数参数和返回值的示例:

int myFunction(int x, int y) {
  return x + y;
}

int main() {
  int result = myFunction(5, 3);
  printf("Result is = %d", result);
  return 0;
}

// 输出 8 (5 + 3)

相反,最好写成这样:

// 函数声明
int myFunction(int, int);

// 主方法
int main() {
  int result = myFunction(5, 3); // 调用函数
  printf("Result is = %d", result);
  return 0;
}

// 函数定义
int myFunction(int x, int y) {
  return x + y;
}

这是一种很好的实践,因为它可以使代码更易于阅读和理解。它还允许您在其他文件或模块中使用函数声明,而无需包含整个函数定义。

C 语言中的递归

递归是指使函数调用自身的技巧。这种技术提供了一种将复杂问题分解为更易于解决的简单问题的途径。

递归可能有点难懂。弄清楚它如何工作的最佳方法是进行试验。

递归示例

将两个数字相加很容易,但将一系列数字相加就比较复杂了。在以下示例中,递归用于通过将问题分解为将两个数字相加的简单任务来将一系列数字相加:

int sum(int k);

int main() {
  int result = sum(10);
  printf("%d", result);
  return 0;
}

int sum(int k) {
  if (k > 0) {
    return k + sum(k - 1);
  } else {
    return 0;
  }
}

示例解释

当调用 sum() 函数时,它将参数 k 添加到所有小于 k 的数字的和中并返回结果。当 k 变成 0 时,函数只返回 0。程序运行时,会遵循以下步骤:

  • 10 + sum(9)
  • 10 + (9 + sum(8))
  • 10 + (9 + (8 + sum(7)))
  • ...
  • 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
  • 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

由于函数在 k 为 0 时不调用自身,因此程序在此停止并返回结果。

开发人员应该非常小心地使用递归,因为它很容易写出永远不会终止的函数,或者会使用过多的内存或处理器资源的函数。然而,当正确编写时,递归可以成为一种非常高效和数学上优雅的编程方法。

C 语言中的数学函数

C 语言中还提供了一系列数学函数,允许您对数字进行数学运算。

要使用它们,您必须在程序中包含 math.h 头文件:

#include <math.h>

平方根

要找到某个数字的平方根,请使用 sqrt() 函数:

printf("%f", sqrt(16));

四舍五入

ceil() 函数将数字向上舍入到最接近的整数,floor() 函数将数字向下舍入到最接近的整数,并返回结果:

printf("%f", ceil(1.4));
printf("%f", floor(1.4));

幂次

pow() 函数返回 x 的 y 次方 (xy) 的值:

printf("%f", pow(4, 3));

其他数学函数

以下表格列出了 <math.h> 库中其他常用的数学函数:

函数 描述
abs(x) 返回 x 的绝对值
acos(x) 返回 x 的反正弦
asin(x) 返回 x 的反正切
atan(x) 返回 x 的反正切
cbrt(x) 返回 x 的立方根
cos(x) 返回 x 的余弦
exp(x) 返回 Ex 的值
sin(x) 返回 x 的正弦 (x 以弧度为单位)
tan(x) 返回某个角度的正切

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

标签:指南,myFunction,return,入门,int,sum,printf,函数
From: https://blog.51cto.com/xiaowange/8791523

相关文章

  • 无涯教程-Java - while 语句函数
    只要给定条件为真(true),Java编程语言中的while循环语句就会重复执行目标语句。while-语法while(Boolean_expression){//Statements}在这里,声明可以是单个语句或语句块。条件可以是任何表达式,并且true是任何非零值。while-示例publicclassTest{publics......
  • C 语言函数:入门指南
    C语言中的函数声明和定义您可以通过以下方式创建并调用函数://创建一个函数voidmyFunction(){printf("我刚被执行了!");}intmain(){myFunction();//调用函数return0;}一个函数包括两个部分:声明:函数名称、返回类型和参数(如果有)定义:函数体(要执行的代码......
  • 无涯教程-Java - Non Access Modifiers函数
    Java提供了许多非访问修饰符来实现许多其他功能。static修饰符:用于创建类方法和变量的。final修饰符:用于最终确定类,方法和变量。abstract修饰符:用于创建抽象类和方法。volatile修饰符:用于线程的已同步。static(Static)修饰符Static变量static关键字用于创......
  • TS函数重载
    学习网址:学习网址:https://www.bilibili.com/video/BV1q64y1j7aH/TS函数重载functionhello(name:string):stringfunctionhello(age:number):stringfunctionhello(value:number|string):string{if(typeofvalue==='string'){return"我的名......
  • Python高级之闭包函数
    闭包函数【一】闭包函数的定义闭包(Closure)是指在函数内部定义的函数,并且这个内部函数可以访问外部函数的变量。这种机制允许函数保留对它创建时可见的变量的访问权,即使在其生命周期结束后也可以使用。闭包的主要特点是:内部函数定义在外部函数内部。内部函数可以引用外部函数......
  • Python项目之员工管理系统-函数版
    员工管理系统#完成以下功能'''---------------员工系统---------------1:注册2:登陆3:添加员工信息4:查看指定员工信息5:查看所有员工信息6:删除指定员工信息......
  • golang http post 执行函数效率最高,速度最快实现
    在Go语言中,使用标准库的net/http包可以进行HTTPPOST请求。为了获得最高的执行效率和最快的速度,可以使用http.Client结构体来管理和复用HTTP连接,并使用http.NewRequest创建请求对象,然后使用http.Client的Do方法发送请求。以下是一个示例代码,展示如何使用Go语言的net/http包执行高效......
  • 内置函数
    内置方法函数用法int.bit_length()返回整数的二进制表示中最高位的位数,不包括符号和前导零int.to_bytes(length,byteorder,signed)将整数转换为字节数组。int.add(other)实现整数的加法运算。int.sub(other)实现整数的减法运算。int.mul(other)实现......
  • Prometheus 快速入门
    Prometheus&Grafana快速入门一、prometheus简介prometheus是监控多个大数据组件的监控系统。Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是GoogleBorgMon监控系统的开源版本。2016年由Google发起Linux基金会旗下的原生云......
  • 无涯教程-Java Access Modifiers函数
    Java提供了许多访问修饰符来设置类,变量,方法和构造函数的访问级别。四个访问级别是-default(默认):对当前包可见,不需要修饰符。private(私有):当前类可见。public(公共):都可见。protected(受保护):对当前包和所有子类可见。默认访问修饰符默认访问修饰符意味着我们......