C 语言函数

C 语言函数

在本教程中,将向您介绍C语言编程中的函数(用户定义函数和标准库函数)。此外,您还将学习为什么在编程中使用函数。

函数是执行特定任务的代码块。

假设您需要创建程序来创建一个圆并为其着色。您可以创建两个函数来解决此问题:

  • 创建一个圆的函数
  • 创建颜色的函数

将复杂的问题分成较小的块可以使我们的程序易于理解和重用。

C 语言函数的优势

C函数具有以下优点。

  • 通过使用函数,我们可以避免在程序中一次又一次地重写相同的逻辑/代码。
  • 我们可以在程序中以及在程序的任何位置多次调用C函数。
  • 当大型C程序被划分为多个函数时,我们可以轻松地对其进行跟踪。
  • 可重用性是C函数的主要成就。
  • 但是,函数调用始终是C程序的开销。

函数包含哪些方面

C函数包含三个方面。

  • 函数声明 必须在C程序中全局声明函数,以告知编译器函数名称,函数参数和返回类型。
  • 函数调用 可以从程序中的任何位置调用函数。参数列表在函数调用和函数声明中要相同。我们必须传递与函数声明中声明的函数数量相同的函数。
  • 函数定义 它包含要执行的实际语句。这是调用函数时控件所涉及的最重要方面。在这里,我们必须注意,该函数只能返回一个值。
序号C函数方面语法
1函数声明return_type function_name(argument_list);
2函数调用function_name(argument_list)
3函数定义return_type function_name(argument_list){function body;}

使用C语言创建函数的语法如下:

示例

return_type function_name(data_type parameter...){//要执行的代码
}

函数类型

C语言编程中有两种类型的函数:

  1. [标准库函数]:在C头文件中声明的函数,例如scanf(),printf(),gets(),puts(),ceil(),floor()等。
  2. [用户定义的函数]:C程序员自定义的函数,我们可以多次使用它。它降低了大型程序的复杂性并优化了代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

返回值

C函数可能会也可能不会从该函数返回值。如果您不必从函数返回任何值,则将void用作返回类型。

让我们看一个简单的C函数示例,该函数不会从该函数返回任何值。

没有返回值的示例:

示例

void hello(){printf("hello c");
}

如果要从函数返回任何值,则需要使用任何数据类型,例如int,long,char等。返回类型取决于要从函数返回的值。

让我们看一个简单的C函数示例,该函数从该函数返回int值。

返回值示例:

示例

int get(){return 10;
}

在上面的示例中,我们必须返回10作为值,因此返回类型为int。如果要返回浮点值(例如10.2、3.1、54.5等),则需要使用float作为方法的返回类型。

示例

float get(){return 10.2;
}

现在,您需要调用该函数以获取该函数的值。

函数调用的不同方面

函数可以接受也可以不接受任何参数。它可能会或可能不会返回任何值。基于这些事实,函数调用有四个不同方面。

  • 没有参数且没有返回值的函数
  • 没有参数但有返回值的函数
  • 有参数且无返回值的函数
  • 带有参数和返回值的函数

不带参数和返回值的函数示例

实例1

示例

#include<stdio.h>
void printName();
void main ()
{printf("Hello ");printName();
}
void printName()
{printf("hello c");
}

输出结果

hello c

实例2

示例

#include<stdio.h>
void sum();
void main()
{printf("\n计算两个数的和:");sum();
}
void sum()
{int a,b; printf("\n输入两个数字");scanf("%d %d",&a,&b); printf("总和是 %d",a+b);
}

输出结果

计算两个数的和:输入两个数字 10 
24 总和是 34

不带参数返回值的函数示例

实例1

示例

#include<stdio.h>
int sum();
void main()
{int result; printf("\n计算两个数的和:");result = sum();printf("%d",result);
}
int sum()
{int a,b; printf("\n输入两个数字");scanf("%d %d",&a,&b);return a+b; 
}

输出结果

计算两个数的和:输入两个数字 10 
24 34

示例2:程序计算正方形的面积

示例

#include<stdio.h>
int sum();
void main()
{printf("计算这个正方形的面积\n");float area = square();printf("正方形的面积: %f\n",area);
}
int square()
{float side;printf("输入边长(以米为单位): ");scanf("%f",&side);return side * side;
}

输出结果

计算这个正方形的面积 
正方形的面积: 10 
输入边长(以米为单位): 100.000000

带参数且不带返回值的函数示例

实例1

示例

#include<stdio.h>
void sum(int, int);
void main()
{int a,b,result; printf("\n计算两个数的和:");printf("\n输入两个数字:");scanf("%d %d",&a,&b);sum(a,b);
}
void sum(int a, int b)
{printf("\n总和是 %d",a+b);    
}

输出结果

计算两个数的和:输入两个数字 10 
24 总和是 34

示例2:程序计算五个数字的平均值。

示例

#include<stdio.h>
void average(int, int, int, int, int);
void main()
{int a,b,c,d,e; printf("\n要计算五个数的平均值:");printf("\n输入五个数字:");scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);average(a,b,c,d,e);
}
void average(int a, int b, int c, int d, int e)
{float avg; avg = (a+b+c+d+e)/5; printf("给定五个数字的平均值 : %f",avg);
}

输出结果

要计算五个数的平均值:
输入五个数字:10 
20
30
40
50
给定五个数字的平均值 : 30.000000

带参数和返回值的函数示例

实例1

示例

#include<stdio.h>
int sum(int, int);
void main()
{int a,b,result; printf("\n计算两个数的和:");printf("\n输入两个数字:");scanf("%d %d",&a,&b);result = sum(a,b);printf("\n总和是 : %d",result);
}
int sum(int a, int b)
{return a+b;
}

输出结果

计算两个数的和:
输入两个数字:10
20 
总和是 : 30

示例2:检查数字是偶数还是奇数的程序

示例

#include<stdio.h>
int even_odd(int);
void main()
{int n,flag=0;printf("\n检查一个数字是偶数还是奇数");printf("\n输入数字: ");scanf("%d",&n);flag = even_odd(n);if(flag == 0){printf("\n数字是奇数");}else {printf("\n这个数是偶数");}
}
int even_odd(int n)
{if(n%2 == 0){return 1;}else {return 0;}
}

输出结果

检查一个数字是偶数还是奇数
输入数字: 100
这个数是偶数

C 标准库函数

标准库函数是C语言中的内置函数,它们被分组并放置在称为库的公共位置。这些函数用于执行某些特定操作。例如,printf是用于在控制台上打印的库函数。库函数由编译器的设计者创建。所有C标准库函数都在扩展名为**.h**的不同头文件中定义。我们需要在程序中包含这些头文件,以利用在此类头文件中定义的库函数。例如,要使用诸如printf / scanf之类的库函数,我们需要在程序中包含stdio.h,这是一个头文件,其中包含有关标准输入/输出的所有库函数。

下表列出了最常用的头文件。

序号头文件描述
1stdio.h这是一个标准的输入/输出头文件。它包含有关标准输入/输出的所有库函数。
2conio.h这是一个控制台输入/输出头文件。
3string.h它包含所有与字符串相关的库函数,例如gets(),puts()等。
4stdlib.h该头文件包含所有通用库函数,例如malloc(),calloc(),exit()等。
5math.h该头文件包含所有与数学运算相关的函数,例如sqrt(),pow()等。
6time.h该头文件包含所有与时间有关的函数。
7ctype.h该头文件包含所有字符处理函数。
8stdarg.h变量参数函数在此头文件中定义。
9signal.h所有信号处理函数都在此头文件中定义。
10setjmp.h该文件包含所有跳转函数。
11locale.h该文件包含语言环境函数。
12errno.h该文件包含错误处理函数。
13assert.h该文件包含诊断函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/176722.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CopyOnWriteArrayList 源码详解

目录 一. 前言 二. 源码详解 2.1. 类结构 2.2. 属性 2.3. 构造方法 2.4. add(E e) 2.5. add(int index, E element) 2.6. addIfAbsent() 方法 2.7. 获取元素() 方法 2.8. remove(int index) 2.9. size() 三. FAQ 3.1. 为什么CopyOnWriteArrayList没有size属性&…

LeetCode【215】数组中第k大的元素

题目&#xff1a; 思路&#xff1a; https://zhuanlan.zhihu.com/p/59110615 代码&#xff1a; public int findKthLargest(int[] nums, int k) {PriorityQueue<Integer> queue new PriorityQueue<>((o1, o2) -> o1 - o2);for (int i 0; i < nums.lengt…

排他思想小练习

点击 某个按钮&#xff0c;让某个按钮对应的 ul 显示&#xff0c;其他的ul 都隐藏 1 -找到所有的按钮 &#xff0c;并循环 2 -给按钮添加点击事件 3 -点击的时候 获取的对应的按钮 获取按钮对应的下标 4 - 所有的都变为黑 点击的按钮颜色变为红色 5 - 其他的所有ul 都隐…

STC89C52+HX711完成电子秤设计

一、项目背景 电子秤是一种通过传感器测量物体质量的设备&#xff0c;被广泛应用于商业和工业领域。传统的机械秤已经逐渐被电子秤取代&#xff0c;因为电子秤具有更高的精度、更方便的使用和更多的功能。 本项目利用STC89C52单片机和HX711模块完成电子秤设计&#xff0c;具有…

Axure9基本操作

产品经理零基础入门&#xff08;四&#xff09;Axure 原型图教程&#xff0c;2小时学会_哔哩哔哩_bilibili Axure 9 从入门到精通全集&#xff0c;自学必备_哔哩哔哩_bilibili 1. ① 页面对应页面个数&#xff0c;概要对应每个页面的具体内容 ② 文件类型 ③ 备用间隔改为5分…

没有设计经验的新手如何制作一本电子画册?

移动信息时代&#xff0c;电子画册逐渐取代纸质画册&#xff0c;它无需印刷&#xff0c;环保节能&#xff0c;也无需随身携带&#xff0c;通过手机/平板/电脑等设备即可随时在线浏览阅读&#xff0c;十分方便。那没有设计经验的新手如何制作一本这样随身携带方便的电子画册呢&a…

Android WebView专题

WebView 专题 第一个WebView程序&#xff1a;加载远程网址 Layout添加WebView组件&#xff1b; <WebViewandroid:id"id/webView_first"android:layout_width"match_parent"android:layout_height"match_parent"/>初始化组件&#xff0c;加…

理工ubuntu20.04电脑配置记录

8188gu无线网卡配置 首先下载github上的文件&#xff0c;进入文件夹 安装make命令 1. 查看usb无线网卡 sudo lsusb|grep 8188 2. 环境准备 sudo apt-get install git make build-essential git dkms linux-headers-$(uname -r) 3. 编译安装 git clone https://github.com…

揭秘拍卖竞价源码的前沿技术:加密、智能合约与更多

在数字时代的今天&#xff0c;拍卖竞价源码成为了炙手可热的话题。作为该领域的专家&#xff0c;我将带您深入了解这一前沿技术的奥秘。本文将揭示拍卖竞价源码的工作原理、加密技术的应用、智能合约的作用以及其他相关技术。 2. 拍卖竞价源码的工作原理 拍卖竞价源码是一种用…

搭建项目环境,集成ts和jest

前言 开新坑。 斥巨资购入大崔哥的 mini-vue 课程&#xff0c;为了改变自己东一榔头西一棒槌的学习状态&#xff0c;也是因为深刻思考了自己身无长物浑浑噩噩这么多年只会敲代码&#xff0c;别无出路&#xff0c;也只能提升自己继续走技术这条路&#xff0c;那提高技术绕不过…

CTFhub-RCE-远程包含

给咱一个phpinfo那么必然有他的道理 PHP的配置选项allow_url_include为ON的话&#xff0c;则include/require函数可以加载远程文件&#xff0c;这种漏洞被称为"远程文件包含漏洞(Remote File Inclusion RFI)"。 allow_url_fopen On 是否允许打开远程文件 allow_u…

ESP32网络开发实例-将数据保存到InfluxDB时序数据库

将数据保存到InfluxDB时序数据库 文章目录 将数据保存到InfluxDB时序数据库1、InfluxDB介绍与安装3、软件准备4、硬件准备5、代码实现6、InfluxDB数据可视化在本文中,将介绍 InfluxDB 以及如何将其与 ESP32 开发板一起使用。 我们将向展示如何创建数据库桶并将 ESP32 数据发送…