函数的返回值可以不用赋值_C语言学习|函数的应用《一》

54d978d8e8b2879d70cf69746b327901.png

C语言为程序的结构提供了函数和模块

一、函数的定义与使用

《编程之道》中写道:“一个程序应该是灵活自由的、它的子过程就像串在一根线子上的珍珠。”子过程在C语言中被称为”函数“。程序的执行从主函数开始,往复、循环、迭代地调用一个又一个函数。

a0b6d83e48ec86a280af06fdf6e510c1.png

函数的分类

1.库函数

printf()、scanf()等都是ANSIC标准的库函数。任何ANSI C的编译器,无论在什么的平台,都必须提供这些函数供用户使用。仅调用ANSI C库函数的程序,具有很好的移植性,能在多种平台上编译运行。还有数量巨大的第三方函数库,完成ANSI C中不包括而又是程序设计需要的功能,例如:微积分运算,数据库和图形界面等。

2.自定义函数

定义一个函数我们需要确定三部分内容:

1.函数的返回值类型

2.函数的名称

3.函数的参数

注:函数名的命名是函数的唯一标识,它的命名规则与变量没什么不同的。

函数定义的语法结构如下:

返回值类型 函数名(类型参数1,类型 参数2)

{

局部变量定义语句

可执行语句序列

}

例子:比较两个整数大小的函数

intMin(int a,int b)

{

int result=(x>y)?y:x;

return result;

}

这里定义名为Min的函数。它有两个参数,返回值和参数的类型均为int,函数的作用是比较两个整数那整数小。此例并非一个可运行的程序。有main()函数的程序才能运行;函数必须main()直接或间接调用才能发挥作用。

二、函数的调用、参数、参数传递和返回值

main()函数调用其他函数可以想象成给员工分配任务。

调用函数的实例如下:

比较两个整数的大小程序;

#include<stdio.h>int max(int i,int t){   int result;   result=i>t?i:t;   return result; }int main(){     int a=36;     int b=72;     int larger;     larger=max(a,b);     printf("%d",larger);     return 0; }

程序运行结果

72

在主函数中变量a和b的值作为参数提供给了max()。这时开始执行max(),且把a与b的值分别复制给了max函数定义的i和t,这个过程就是参数传递。max函数内接收的数据的参数(即i和t)叫形式参数,简称形参;调用者提供的参数(主函数的a和b这两个参数)叫实际参数;简称实参。

实参的数据必须与形参的数据相等,它们的类型必须匹配(匹配的原则与变量赋值的原则一致)。形参相当于在函数内定义的变量,也可以被赋值。实参与形参有各自的存储空间,所以形参值得改变不会影响实参。

一个函数可以定义的形参并无明确的数量限制,用户可以按照需要随意定义。

参数的类型也没有限制,任何可用类型均能使用,不同参数可以是不同的类型。例如

int fun(int a,float b,charc){    …} 

这样子写是合法的。

也可以定义没有参数的函数,这种函数不需要调用者提供任何数据,例子

int func(void){    …}

三、主函数main()的特殊性

C语言在设计中注重一致性。

1.一致性体现在各个函数都是平等的,没有主从之分,可以随意相互调用,每个函数都可以调用其他的函数,其他函数也可以在调用其他函数。函数也可以调用自己,被称为”递归函数“;

2.一致性体现在定义各种函数的语法都遵守共同的语法规则。

尽管main函数也有返回值,但是有时在定义main()时,可以不指明其返回值类型,没有参数也可以不用void。这种用法是符合C语言语法,任何函数也都可以如此定义。

关注更多C语言学习|函数的应用《二》

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

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

相关文章

php的yii框架配置,php配置yii框架_PHP教程

个人爱好,研究了下php的yii框架。首先,研究yii框架的前提是下载php的一键安装和zend studio.. php的一键安装给出连接如下http://www.download3k.com/Install-XAMPP.html 。。。zend studion的链接如下http://www.zend.com/en/products/studio/downloads…

蚂蚁庄园 php源码,蚂蚁庄园五体投地

蚂蚁庄园五体投地,蚂蚁庄园小课堂的题目你答对了吗?今天题目有点难,大家可能不清楚,人们常常会对极其敬重的人五体投地,五体投地的五体指的是什么意思呢?“五体”又称“五轮”,指双肘、双膝和额…

电脑端二维码识别工具_电脑端自签工具更新,多功能软件一键签名

因为苹果后台的调整,电脑端的自签工具 Cydia Impactor 一直无法使用,如今虽然没有等到大胡子对 Cydia Impactor 适配更新,却等到了全新的替代工具。先说下为什么 Cydia Impactor 为什么让那么多人惦记,虽然对于不越狱安装越狱工具…

python列表是顺序表还是链表_顺序表与链表

Python中的顺序表 Python中的list和tuple两种类型采用了顺序表的实现技术,具有前面讨论的顺序表的所有性质。 tuple是不可变类型,即不变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似。…

js for foreach 快慢_js基本搜索算法实现与170万条数据下的性能测试

前言今天让我们来继续聊一聊js算法,通过接下来的讲解,我们可以了解到搜索算法的基本实现以及各种实现方法的性能,进而发现for循环,forEach,While的性能差异,我们还会了解到如何通过web worker做算法分片&am…

iterm php,iTerm2笔记

本文是 iTerm2 的使用笔记,不定期更新。1 注释说明对于 Preferences 的修改,> 表示需要切换选项卡,-> 表示在同一选项卡内2 参考3 杂301 如何随时随地一键调用 Quake-like iTerm2首先声明:由于 Mac OS 本身对窗体「最大化」…

matlab emd功率谱密度,【脑电信号分类】脑电信号提取PSD功率谱密度特征

脑电信号是一种非平稳的随机信号,一般而言随机信号的持续时间是无限长的,因此随机信号的总能量是无限的,而随机过程的任意一个样本函数都不满足绝对可积条件,所以其傅里叶变换不存在。不过,尽管随机信号的总能量是无限…

组装服务器配置清单_2020年组装电脑配置清单列表

随着电脑技术的不断革新,越来越多的家庭都有各式各样的电子设备。而电脑现在基本上是家家都有的物品,可是在购买电脑的时候新手小白需要注意那些事项呢?今天我们就给告诉小白如何组装电脑以小白组装电脑配置清单。1、购买电脑,您首…

oracle 关于归档的视图,oracle 与归档日志相关的几个视图

归档日志占据的数据库举足轻重的位置,以下系统视图来了解归档日志情况V$ARCHIVEV$ARCHIVED_LOG 已归档日志详单V$ARCHIVE_GAP 归档日志丢失V$ARCHIVE_PROCESSES 归档进程信息V$ARCHIVE_DEST 查看备份路径情况V$ARCHIVE_DEST_STATUSv$recovery_f…

count数据库优化oracle,迷惑性SQL性能问题排查与优化

:数据科学、人工智能从业者的在线大学。数据科学(Python/R/Julia)数据分析、机器学习、深度学习作者简介戴秋龙,拥有超过八年的电信、保险、税务行业核心系统ORACLE数据库优化,优化经验,具备丰富的行业服务背景。对Oracle数据库有…

swiper.js pagination指示点不变_电缆故障点的四种实用测定方法

一、电缆故障的种类与判断无论是高压电缆或低压电缆,在施工安装、运行过程中经常因短路、过负荷运行、绝缘老化或外力作用等原因造成故障。电缆故障可概括为接地、短路、断线三类,其故障类型主要有以下几方面:①三芯电缆一芯或两芯接地。②二…

wampserver php扩展openssl 不可用_PHP基础及WAMP集成基础

PHP语言编写的基础框架 PHP语言的编写框架与HTML5的一致&#xff0c;都是一下框架&#xff1a;<!DOCTYPE html> <html><head></head><body> </body> </html>PHP的主要表达语句在body里面&#xff0c;主题内容在<?p ?>标签中…

python expect模块_Python尚学堂高淇|第二季0408P119P123with上常见的异常的解决tryexcept...else结构,...

P119 04&#xff1a;try ...except...else结构try..except...else结构增加了"else快"如果try快当中没有抛出异常&#xff0c;则执行else快&#xff0c;如果try快当中抛出异常&#xff0c;则执行except快&#xff0c;不执行【实例】try....except...else结构执行测试…

用c语言简单办法做一个字典_幼儿园手工,用废纸筒做一个简单的小蝴蝶,有教程...

幼儿园的手工&#xff0c;除了用卡纸做各种简单的小制作外&#xff0c;纸筒也是常用的手工材料。下面用纸筒做一个简单的小蝴蝶&#xff0c;做法很简单。制作过程&#xff1a;准备材料废纸筒、剪刀、胶、水彩笔&#xff0c;纸板。在纸筒上剪下五个圈圈剪完的样子见下图把里面粘…

bing搜索引擎入口_互联网流量入口——头条的搜索计划

互联网时代&#xff0c;谁掌控了用户流量&#xff0c;那它就基本上胜出了一半&#xff1a;只有大量的用户和海量的数据才是信息化时代的主要要素。这些大数据信息和火热的深度学习算法的结合&#xff0c;能够催生无数的应用场景&#xff0c;通过不断的扩展和调整业务来保证自身…

python图形化编程工具哪个好_mPython(图形化编程软件) V0.5.0 官方版

mPython 是一款针对Python 3编程语言的图形化编辑工具。支持函数&#xff0c;仿真、hex、python、blockly三种代码读写等功能。并可以与TPYBoard系类开发板配合使用&#xff0c;直接连接PC端进行编程。【功能特点】 1、不依赖网络&#xff0c;可离线安装使用 2、支持hex、pytho…

linux更新系统内核,如何更新Linux内核来提升系统性能?

Linux内核的开发速度是前所未有的&#xff0c;大概每二三个月就会有一个新的主要版本发布。每次发布都带来了几项新的功能和改进&#xff0c;许多人可以充分利用它们&#xff0c;让计算体验更快、更高效或者有其他方面的提升。可问题是&#xff0c;你通常无法充分利用这些刚发布…

php对接V免签支付教程_【全网首发】最新版影视小程序搭建教程完整版

大家好&#xff0c;这里是深海网络&#xff0c;今天给大家讲解一下新版影视小程序搭建。  首先给大家看一下新版影视小程序是什么样子的&#xff0c;它有黑夜和白天两种观影模式&#xff0c;而且搜索精准&#xff0c;播放速度快。01第一步&#xff0c;开始正式搭建。新版区小…

linux编译代码命令,Linux下使用GCC命令编译代码

Linux下初学时最好从命令行入手&#xff0c;这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi/vim(个人觉得vim比vi好用)或其它编辑器编写。编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。gcc命令提供了非常多的命令选项&#xff0c;但并不是…

简要描述内部连接和外部连接之间的区别_sqlserver的几种常见连接方法

感谢本文几种描述方法&#xff0c;让我解决了最近的一段时间的疑问&#xff0c;转载下来&#xff0c;以供后面查血使用。本文链接&#xff1a;https://blog.csdn.net/huanghanqian/article/details/52847835四种join的区别已老生常谈&#xff1a;INNER JOIN(也可简写为JOIN): 如…