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.rhkb.cn/news/189207.html

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

相关文章

Failed to connect to github.com port 443:connection timed out

解决办法&#xff1a; 步骤1&#xff1a; 在这里插入图片描述 步骤2&#xff1a; -步骤3 &#xff1a;在git终端中执行如下命令&#xff1a; git config --global http.proxy http:ip:port git config --global https.proxy http:ip:port git config --global http.proxy htt…

HTTP-FLV详解及分析

文章目录 前言一、HTTP-FLV 简介1、市场上使用 http-flv 的商家2、http-flv、rtmp 和 hls 直播的优缺点3、http-flv 技术实现 二、Nginx 配置 http-flv1、Windows 安装 nginx&#xff0c;已经集成 nginx-http-flv-module2、nginx.conf 配置文件3、运行 nginx 服务器4、ffmpeg 推…

【Redis】String字符串类型

上一篇&#xff1a;Redis-key的使用 https://blog.csdn.net/m0_67930426/article/details/134361821?spm1001 .2014.3001.5501 目录 appen (附加&#xff09; strlen(获取字符串的长度&#xff09; incr decr getRange(获取字符串&#xff09; setRange&#xff08;替…

浅析移动端车牌识别技术的工作原理及其过程

随着社会经济的发展与汽车的日益普及带来巨大的城市交通压力,在此背景下,智能交通系统成为解决这一问题的关键。而在提出发展无线智能交通系统后,作为智能交通的核心,车牌识别系统需要开始面对车牌识别移动化的现实需求。基于实现车牌识别移动化这一目标,一种基于Android移动终…

Python之函数进阶-函数执行原理

Python之函数进阶-函数执行原理 函数执行流程 C语言中&#xff0c;函数的活动和栈有关。栈是后进先出的数据结构。栈是由底端向顶端生长&#xff0c;栈顶加入数据成为压栈、入栈、栈顶弹出数据称为出栈。 def add(x, y):r x yprint(r)return rdef main():a 1r add(a, 2)r…

【python】sys-psth和模块搜索路径

我们在导入一个模块的时候&#xff0c;比如说&#xff1a; import math它必然是有搜索路径的&#xff0c;那到底是在哪个目录下面找呢&#xff1f;Python解释器去哪里找这个文件呢&#xff1f;只有找到这个文件才能读取、装载运行该模块文件。 它一般按照如下路径寻找模块文件…

暴力递归转动态规划(十五)

题目 给定一个正数n&#xff0c;求n的裂开方法数&#xff0c; 规定&#xff1a;后面的数不能比前面的数小 比如4的裂开方法有&#xff1a; 1111、112、13、22、04 。 5种&#xff0c;所以返回5 暴力递归 用暴力递归方法进行尝试&#xff0c;整体思路是这样&#xff1a; 暴力递…

最终前端后端小程序还有nginx配置

前端 前端 build 代码及其 放置位置 后端 nginx.conf 配置 user root;worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 1024; }http {include /etc/nginx/mime.types;default_type a…

一文图解爬虫(spider)

—引导语 互联网&#xff08;Internet&#xff09;进化到今天&#xff0c;已然成为爬虫&#xff08;Spider&#xff09;编制的天下。从个体升级为组合、从组合联结为网络。因为有爬虫&#xff0c;我们可以更迅速地触达新鲜“网事”。 那么爬虫究竟如何工作的呢&#xff1f;允许…

【Java 进阶篇】Java 中 JQuery 对象和 JS 对象:区别与转换

在前端开发中&#xff0c;经常会涉及到 JavaScript&#xff08;JS&#xff09;和 jQuery 的使用。这两者都是前端开发中非常重要的工具&#xff0c;但它们之间存在一些区别。本文将详细介绍 Java 中的 JQuery 对象和 JS 对象的区别&#xff0c;并讨论它们之间的转换方法。 1. …

无需公网IP,贝锐花生壳内网穿透远程访问NAS

群晖DSM 7.0及以上版本 1.1 安装运行花生壳套件 &#xff08;1&#xff09;通过浏览器输入群晖NAS的内网地址&#xff0c;登录进去后&#xff0c;点击【套件中心】&#xff0c;搜索【花生壳】&#xff0c;并点击【安装套件】&#xff1b; &#xff08;2&#xff09; 勾选我接…

Linux服务器上搭建JupyterNotebook教程

搭建需知 1.确保是Linux服务器&#xff1b; 2.已经在linux服务器上安装好anaconda3&#xff1b; 搭建教程 请按照顺序依次执行下面的命令&#xff1a; 1、安装Jupyter Notebook 执行以下命令&#xff0c;安装jupyter notebook conda install jupyter【注】 如果anaconda3…

Postman使用json提取器和正则表达式实现接口的关联

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;使用json提取器实现接口关联 实际项目场景&#xff0c;在财务信息页面&#xff0c;需要上传一个营业执照&…

C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3)

C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3) 这次来分析CombatDebugOverlay属性,这个属性只有在调试游戏的时候才会使用。当你设置这个属性的时候,就可以看到如下图的结果: 可以看到物品的周边都有一个圆圈,以及有一些十字的点位标志。 那些十字表示的点…

短信验证码实现(阿里云)

如果实现短信验证&#xff0c;上教程&#xff0c;这里用的阿里云短信服务 短信服务 (aliyun.com) 进入短信服务后开通就行&#xff0c;可以体验100条免费&#xff0c;刚好测试用 这里由自定义和专用&#xff0c;测试的话就选择专用吧&#xff0c;自定义要审核&#xff0c; Se…

Python实现局部二进制算法(LBP)

1.介绍 局部二进制算法是一种用于获取图像纹理的算法。这算法可以应用于人脸识别、纹理分类、工业检测、遥感图像分析、动态纹理识别等领域。 2.示例 """ 局部二进制算法&#xff0c;计算图像纹理特征 """ import cv2 import numpy as np imp…

【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询(二)——前端el-pagination实现

系列文章 【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询—后端实现 文章目录 系列文章系统版本实现功能实现思路后端传入的数据格式前端el-table封装axois接口引入Element-plus的el-pagination分页组件Axois 获取后台数据 系统版本 后端&#xf…

【架构】后端项目经典分层架构介绍

文章目录 前言分层架构项目实践示例项目结构 其他知识 前言 开发后端项目时&#xff0c;我们最常见的一种架构模式就是分层架构 。 所谓的分层架构&#xff0c;就是把系统自上而下分为多个不同的层&#xff0c;每一层都有特定的功能和职责&#xff0c;且只和自己的直接上层与…

iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤

目录 iOS移动应用安全加固&#xff1a;保护您的App免受恶意攻击的重要步骤 摘要 引言 一、APP加固的概念 二、APP加固方案的比较 三、保护iOS应用的安全 四、总结 参考资料 摘要 本文介绍了移动应用程序&#xff08;App&#xff09;加固的概念和流程&#xff0c;以及市…

计算机基础知识48

web应用程序 # Django框架是一款专门用来开发web应用的框架 # Web应用程序是一种可以通过浏览器访问的应用程序, B/S架构 案例&#xff1a;淘宝网、京东网... # 应用程序有两种模式: C/S&#xff1a;客户端/服务器端程序&#xff0c;这类程序一般独立运行 B/S&#xff1…