C语言 函数

定义函数

在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:

  • 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void

  • 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。

  • 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。

  • 函数主体:函数主体包含一组定义函数执行任务的语句。

举个例子:以下是 max() 函数的源代码。该函数有两个参数 num1 和 num2,会返回这两个数中较大的那个数:

/* 函数返回两个数中较大的那个数 */int max(int num1, int num2) {   /* 局部变量声明 */   int result;   if (num1 > num2)      result = num1;   else      result = num2;   return result; }

函数声明

函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。

函数声明包括以下几个部分:

return_type function_name( parameter list );

针对上面定义的函数 max(),以下是函数声明:

int max(int num1, int num2);

在函数声明中,参数的名称并不重要,只有参数的类型是必需的,因此下面也是有效的声明:

int max(int, int);

当您在一个源文件中定义函数且在另一个文件中调用函数时,函数声明是必需的。在这种情况下,您应该在调用函数的文件顶部声明函数。

调用函数

创建 C 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。

调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。

例如:

#include <stdio.h> /* 函数声明 */int max(int num1, int num2);

int main ()

{

  /* 局部变量定义 */

   int a = 100; 

   int b = 200;

   int ret;  

  /* 调用函数来获取最大值 */   ret = max(a, b);   printf( "Max value is : %d\n", ret );

   return 0;

}

/* 函数返回两个数中较大的那个数 */

int max(int num1, int num2)

{

  /* 局部变量声明 */   int result;   if (num1 > num2)

      result = num1; 

   else

     result = num2;   return result; }

把 max() 函数和 main() 函数放一块,编译源代码。当运行最后的可执行文件时,会产生下列结果:

Max value is : 200

函数参数

如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式参数。形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。

默认情况下,C 使用传值调用来传递参数。一般来说,这意味着函数内的代码不能改变用于调用函数的实际参数。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

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

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

相关文章

cassandra 入门_Apache Cassandra和Java入门(第二部分)

cassandra 入门要求 要遵循本教程&#xff0c;您应该已经有一个正在运行的Cassandra实例&#xff08; 一个小型集群会很好 &#xff0c;但不是必需的&#xff09;&#xff0c;已安装Datastax Java驱动程序&#xff08; 请参阅第I部分 &#xff09;&#xff0c;并且已经在这里进…

蓝桥杯 java 组素数,2018 蓝桥杯省赛 B 组模拟赛(五) B 结果填空:素数个数

对0,1,2,3,4,5,6,7进行全排列&#xff0c;需要注意的是0不能开头&#xff0c;所以我直接让初始值设为1,0,2,3,4,5,6,7&#xff0c;这样就避免了0开头的情况。对于每一次去判断是不是素数的话会有点浪费时间&#xff0c;所以可以用素数打表。实现代码&#xff1a;#include using…

自适应 幻灯片代码 app_字节跳动 To B 再添一员,将推出飞书文档独立App | 36氪独家...

不只是功能点的延伸&#xff0c;以 C 端打 B 端&#xff0c;是字节跳动推出“飞书文档”的另一体现。文&#xff5c;苏建勋头图来源| IC photo据36氪获悉&#xff0c;字节跳动旗下移动办公软件“飞书”将于近期推出独立 App “飞书文档”。这是继2月底&#xff0c;字节跳动推出…

听说高手都用记事本写C语言代码?

坊间传闻高手都喜欢用记事本写代码&#xff0c;那么问题来了&#xff0c;我们以C语言为例&#xff0c;如何用记事本编译运行呢&#xff1f;其实最简单的方式就是安装GCC编译器&#xff0c;在记事本编写C语言程序&#xff0c;然后再在命令行用GCC编译运行&#xff0c;下面我简单…

jface_使用JFace Viewer延迟获取模型元素

jfaceEclipse JFace Viewers显示的模型元素有时需要花费大量时间来加载。 因此&#xff0c; 工作台提供了IDeferredWorkbenchAdapter类型以在后台获取此类模型元素。 不幸的是&#xff0c;似乎仅通过DeferredTreeContentManager派生的AbstractTreeViewer支持此机制。 因此&…

php第一课,[php第一课]php简介

学习php前提&#xff1a;应有html与css知识1、php简介[1]php是一种开源通用服务器端脚本语言。[2]php&#xff1a;hypertext preprocessor&#xff0c;译名为超文本预处理器[3]在服务器上执行[4]php文件&#xff1a;{1}php文件包含文本、html、js、php代码{2}服务器上运行&…

python省略_在python中如何连接用省略号(…)分隔的连续行

您只需&#xff1a;delim ...text This is single line.This is second long line... continue from previous line.This third single line.# here were building a list containing each line# well clean up the leading and trailing whitespace# by mapping Pythons str…

C语言边角料:结构体中指针类型的成员变量,它的类型重要吗?

一、前言昨天在编译代码的时候&#xff0c;之前一直OK的一个地方&#xff0c;却突然出现了好几个 Warning!本着强迫症要消灭一切警告的做法&#xff0c;最终定位到&#xff1a;是结构体内部&#xff0c; 指向结构体类型的指针成员变量导致的问题。这个问题&#xff0c;也许永远…

oracle 11g b表空间什么情况下自动增加,Oracle 11g表空间——创建和扩展(永久)表空间...

Oracle 11g表空间——创建和扩展(永久)表空间本文内容创建(永久)表空间查看表空间扩展表空间创建(永久)表空间Oracle 按照区和段空间进行管理表空间。区管理方式 - 针对区的分配方式的不同&#xff0c;有两种方式&#xff1a;字典管理方式(dictionary-managed tablespace&#…

python rsa 公钥解密_python利用rsa库做公钥解密的方法教程

前言对于RSA的解密&#xff0c;即密文的数字的 D 次方求mod N 即可&#xff0c;即密文和自己做 D 次乘法&#xff0c;再对结果除以 N 求余数即可得到明文。D 和 N 的组合就是私钥(private key)。算法的加密和解密还是很简单的&#xff0c;可是公钥和私钥的生成算法却不是随意的…

oracle 11g release2版本jdbc,Oracle发布JDeveloper11gRelease2更新版

Oracle在周二的时候发布了JDeveloper IDE升级版JDeveloper 11g Release 2&#xff0c;该版本支持JSF 2.0技术和模块化的服务端Web UI开发&#xff1b;另外该版本在启动时间上和运行性能上也有很大改善&#xff0c;因为整个IDE重新架构了&#xff0c;基于OSGi后端结构&#xff0…

C语言:--位域和内存对齐

位域位域是指信息在保存时&#xff0c;并不需要占用一个完整的字节&#xff0c;而只需要占几个或一个二进制位。为了节省空间&#xff0c;C语言提供了一种数据结构&#xff0c;叫“位域”或“位段”。“位域“是把一个字节中的二进位划分为几个不同的区域&#xff0c;并说明每个…

python页面驱动mxd_如何利用python 批量导出mxd至jpg

展开全部你好&#xff0c;arcpy.mapping提供了如下的函32313133353236313431303231363533e78988e69d8331333335313835数&#xff1a;arcpy.mapping 函数AddLayer(data_frame, add_layer, {add_position})AddLayerToGroup(data_frame, target_group_layer, add_layer, {add_posi…

junit rule_使用@Rule在JUnit中测试文件和目录

junit rule多亏了TemporaryFolder Rule在JUnit中使用文件和目录进行测试很容易。 在JUnit中&#xff0c;规则&#xff08; Rule &#xff09;可以用作夹具设置和清除方法&#xff08; org.junit.Before &#xff0c; org.junit.After &#xff0c; org.junit.BeforeClass和org…

oracle 递归计算,SQL(Oracle)中的递归计算

好吧,我想我已经有了解决方案.这些数字与你的数字有点不同,但我相当确定我的正在做你想要的.我们可以在第1步和第1步中完成所有工作. 2使用单个查询(main_sql).必须使用递归语句(recur_sql)完成3和4.with main_sql as (select a.*,b.*,sum(a_amt) over (partition by b_id) as …

C语言实现数据字节序交换的四种方式

1关于数据字节序的说明1&#xff09;关于字节序的说明字节序有两种大端和小端。大端&#xff1a;数据高位存放在低地址&#xff0c;地位放在高地址。如0x12345678在内存中存放为地址从左到右为低到高12345678。 小端&#xff1a;数据地位存放在低地址&#xff0c;高位存放在高地…

python 抓取微博评论破亿_一篇文章教会你使用Python定时抓取微博评论

【Part1——理论篇】试想一个问题&#xff0c;如果我们要抓取某个微博大V微博的评论数据&#xff0c;应该怎么实现呢&#xff1f;最简单的做法就是找到微博评论数据接口&#xff0c;然后通过改变参数来获取最新数据并保存。首先从微博api寻找 抓取评论的接口&#xff0c;如下图…

cassandra 入门_Apache Cassandra和Java入门(第一部分)

cassandra 入门在此页面上&#xff0c;您将学到足够的知识以开始使用NoSQL Apache Cassandra和Java&#xff0c;包括如何安装&#xff0c;尝试一些基本命令以及下一步要做什么。 要求 要遵循本教程&#xff0c;您应该已经有一个正在运行的Cassandra实例&#xff0c;并且已经在…

C语言如何实现动态数组?

提出问题请问在c语言里如何实现动态大小的数组啊&#xff0c;比如说int a[N];&#xff0c;这里N的值可以在程序中定&#xff0c;或者有什么方法可以实现类似的功能&#xff1f;总之只要在编译时不用制定数组大小就行。分析问题嵌入式系统的内存是宝贵的&#xff0c;内存是否高效…

Oracle为什么装在XP系统,重装xp系统后oracle恢复方法

重装系统后oracle如何恢复呢?下面就给大家介绍一下重装系统后oracle的恢复方法1、我们安装数据库软件只需安装同版本的数据库软件&#xff0c;不需要创建数据库。最好安装在和原来数据库同样的%ORACLE_HOME%下&#xff0c;省得还要修改参数文件路径等。(直接覆盖原来的oracle即…