C语言基础——函数

这篇具有很好参考价值的文章主要介绍了C语言基础——函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数是指将一组能完成一个功能或多个功能的语句放在一起的代码结构。在C语言程序中,至少会包含一个函数,及主函数main()。本章将详细讲解关于函数的相关内容。

一.函数概述

C语言重要组成部分。本质是将一个语句块通过命名的方式独立出来。通过调用函数,可以实现对部分代码的反复使用,。

函数类似于循环结构,可以节约大量代码。不同的是,函数在使用时不用被连续使用,而循环结构必须被连续使用。

二.使用函数

1.定义函数

定义函数由函数首部与函数体组成。其中,函数首部由void、函数名和小括号组成;函数体由大括号和语句块组成。

void函数名()
{
     语句块;
}

由于函数名属于标识符,所以函数名必须符合标识符的命名规则。命名的函数名要有较好的可读性。

2.调用函数

调用函数是通过语句实现的。函数名、小括号与分号组成调用函数语句。

函数名();

c语言函数,C语言基础,c语言

3.函数说明

在使用函数时,默认为先定义函数、后调用函数。c语言函数,C语言基础,c语言
由于计算机执行程序是顺序执行。所以在调用函数时,将定义函数放在主函数之前

三.使用参数

最基本的函数形式相当于一个封闭空间,该函数的功能不受外界影响。如果函数的功能需要外部传递一些值进入函数,并参与函数的运算,这种函数在C语言中被称为带参函数。

1.参数声明

对参数进行声明

void 函数名(类型 形式参数)

其中,类型为形式参数的类型。形式参数简称形参,其本质为一个变量。声明形参后等于为函数声明了变量,可以在函数体内进行使用。
形参的个数可以为一个也可以为多个。如果要声明多个形参,它们之间用逗号隔开即可。

void(类型形参1,类型形参2,……)
{
}

形参的作用就是一个接受站台,用于接收数据。在函数中,声明几个形参等于建立了个接收站。

2.参数传递

指将数据通过参数传递到函数的形参中。参数传递方式为通过调用函数语句,将值传递到函数中。

函数名(实际参数)

实际参数简称实参,表示实际传递的数值。实参可以为常数,也可以为变量。
实参的个数、数据类型及顺序要与形参的一致。如果传递多个实参,咋要用逗号将其分隔,

函数名(实参1;实参2;实参3;……);

实参的类型与形参的类型要一致;当实参与形参类型不同时,如果实参的类型可以被自动转换为形参的类型,也是可以进行参数传递的。

四.返回值

返回值是指函数在被执行完后返回的值。通过返回值,我们可以确定函数执行的情况,还可以得到函数的运行结束。

1.声明函数类型

声明函数类型是指声明函数返回值的类型。

类型 函数名()
{
}

其中,类型是指函数返回值的类型。函数返回值可以为一个常数或一个变量。无论是带参函数还是无参函数都可以声明函数类型。

void 函数名()
{
}

这里的void表示该函数没有返回值。没有返回值就是没有反馈信息。

2.传递返回值

传递返回值要使用return语句。通过return语句可以将函数返回值进行传递

return 返回值;

其中,return语句可以有多个;返回值为表达式,其类型必须和声明函数类型一致或兼容。这里的兼容也可以指可以自动转换。
变量或常量也属于表达式

类型 函数名(形参1,形参2,形参3,……)
{
     ……
     return 0;
}

五.局部变量

局部变量是指在一定范围内有效的变量。一定范围即有效范围,具体是指局部变量所属的函数范围。在这个范围中,局部变量是有效的。在函数内定义的变量及形参都属于局部变量。c语言函数,C语言基础,c语言

a.作用域

作用域是指变量可以使用的范围。局部变量的作用域是从声明该变量开始一直到所有语句块的结束

局部变量的有效范围与局部变量的作用域是不同的,在局部变量的有效范围中,该局部变量是有效的,但不一定可以被使用。

b.生命周期

生命周期是指变量处于“存活”状态的时间长短。局部变量只有在被当次调用期间存在,而在没有被调用期间处于“死亡”状态。

可以让当前没有使用的变量处于“休眠状态“,以减轻硬件的加载负担。

六.全局变量

全局变量又称外部变量,是指在整个程序内都有效的变量。全局变量在函数外部进行声明。全局变量的作用域是从声明该变量开始一直到所有程序结束。

七.递归

在C语言中,使用递归编写程序可以大量减少程序中的代码。

1.什么是递归

递归来源于英文单词recursion,其意思为递推、递归。递归就是按照特定规律将复杂的问题逐步简化的一个过程。递归由递推、终止条件、回溯及递归方式 4个部分组成。 程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义域说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归主要思考方式在于:把大事化小
递推:是将复杂数据进行简化的过程。
终止条件:是递推过程的中止界限
回溯:是将简化的所有数据进行回推的过程。
递归方式:是在递推与回溯过程中都要遵循的简化数据和回推数据的规律

2.递归的两个必要条件

存在限制条件,当满足这个限制条件的时候,递归便不再继续。
每次递归调用之后越来越接近这个限制条件。

八.库函数

将大量常用的相关函数放在一起,形成一个库(仓库)。其中,将库中的所有函数称为库函数,将仓库称为系统库文件,又称头文件,其文件名后缀为.h。

1.使用库函数

不同的头文件中包含了不同类型的库函数。如果想要使用库函数,就要将对应的头文件引入程序中,引入头文件等于将头文件所包含的所有库函数导入程序中,这时就可以直接调用库函数。

#include<文件名>

其中<> 可以用英文双引号代替

#include"文件名"

在引入头文件时,结尾不能加分号

2.常见头文件

C语言提供了很多头文件,不同的编译器支持的头文件不同。下面我们将常用的几个头文件进行展示。

头文件 包含的库函数
math.h 数字库函数
ctyph.h 字符函数与字符串函数
stdio.h 输入/输出函数
stdlib.h 动态分配函数与随机函数

3.库函数printf()和scanf()

在C语言中,我们常调用的库函数就是stdio.h头文件提供函数printf()与库函数scanf()。

printf("格式化字符串",参量表);

其中格式化字符串包括正常字符与格式化规定字符。正常字符会被原样输出,而格式化规定字符为"%“开头的占位符由斜杠” \ "组成的转义字符,如%d、%c、\n等
参量表是指要输出的一系列参数。参量由表达式组成。参数必须与格式化字符串中的占位符的个数、类型及顺序相符,且每个参数之间用逗号分开。
如果一个格式化字符串中没有占位符,此时参量表可以被省略。

库函数scanf()为输入函数

scanf("格式化字符",参量表);

其中格式化字符由“%”开头的占位符组成。格式化字符规定了用户输入的数据类型,如“%d”表示用户输入的数据类型必须是整型。
如果格式化字符中由多个占位符,他们之间可以用空格或其它符号作为分隔符。
参量表由“&”与参数组成,如&a。参数必须与占位符的个数、类型及顺序相符,每个参数之间用逗号分开。

九.数值运算函数

math.h头文件中的库函数

1.绝对值运算函数

绝对值是指一个数在数轴上所对应点到原点的距离。文章来源地址https://www.toymoban.com/news/detail-718087.html

函数 功能
abs(x) 求整数的绝对值
cabs(znum) 求复数的绝对值
fabs(s) 求双精度的绝对值
labs(x) 求长整形的绝对值

2.三角函数运算函数

函数 功能
sin(x) 求正弦值
cos(x) 求余弦值
asin(x) 求反正弦值
acos(x) 求反余弦值
sinh(x) 求双曲正弦值
cosh(x) 求双曲余弦值
tan(x) 求x的正切值,其中x的单位是弧度
tanh(x) 求x的双曲正切值
atan(x) 求x的反正切值,其中x的单位是弧度
atan2(y,x) 求y/x的反正切
ceil() 求出不小于指定值的最小整数(取上整)
floor() 求出不大于指定值的最大整数(取下整)
fmod() 返回两参数相除的余数,该余数符号与被除数的相同
modf(val,&iptr) 把双精度val分解为整数部分和小数部分,把整数部分存到iptr指向的单元
frexp(val,&iptr) 把双精度数val分解为位数x和以2为底的指数n,及val=x*2n,将n存放在eqtr指向的变量中。
srand() 初始化随机数发生器
rand() 产生-90到32767之间的随机整数
ldexp(x,exp) 返回x乘以2的exp次幂
log(x) 返回x的自然对数
log10(x) 返回x的常用对数(底数为10的对数)
sqrt(x) 返回x的平方根
exp(x) 返回e的x次幂的值
pow(x,y) 返回x的y次方的值

到了这里,关于C语言基础——函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go语言基础一(包、变量和函数)

    go程序由一个个不同的包组成,程序的入口是名为main的包,比如我们创建一个main文件 main.go go要求每一个go文件的非注释开头必须是``` package xxx``,也就是声明该文件属于哪个包 首先我们创如下包文件夹: 这样,如果我们在 main.go 里面需要使用 cmp.go 里面的函数的话需要添加这

    2024年02月15日
    浏览(42)
  • C语言-基础语法学习-1 函数

    当我们需要在C语言中传递一维数组作为函数的形参时,需要了解以下几个关键点: 函数声明和定义:在声明和定义函数时,我们可以使用以下方式指定一维数组作为形参: 或者 这两种方式都允许我们传递一个一维数组作为形参。 数组传递:在C语言中,数组传递实际上是通

    2024年02月12日
    浏览(53)
  • 【C语言基础教程】函数指针与指针大小

    在C语言中,指针是一项强大的工具,用于处理内存中的数据。除了常见的指向变量和数组的指针,C语言还支持函数指针,它是一个指向函数的指针。本文将深入探讨函数指针的概念以及指针的大小在C语言中的重要性。 函数指针 是指向函数的指针变量。它允许我们在运行时

    2024年02月05日
    浏览(34)
  • c语言基础知识帮助理解(详解函数)

    目录 1. 函数是什么 2. 库函数  3. 自定义函数  4. 函数参数  4.1实际参数(实参)  4.2形式参数(形参)  5.函数的调用 5.1传值调用 5.2传址调用 (传递地址) 6. 函数的嵌套调用和链式访问  6.1 嵌套调用  6.2 链式访问  7. 函数的声明和定义  7.1 函数声明  7.2函数定义 函数是

    2024年02月14日
    浏览(44)
  • C语言格式化输出函数printf详解——C语言基础知识

    (由于篇幅较长,内容较全,建议收藏) printf函数的一般格式为: printf(格式控制字符串,输出值参数表); 如: 其中, f=%f,c=%fn 是 格式控制字符串 , f,c 是 输出值参数表 。 (1)格式控制字符串是用双引号括起来的字符串,包括三类信息: 格式字符。格式字符由“%”

    2023年04月08日
    浏览(42)
  • c语言基础知识帮助理解(函数递归详解)

    \\\"从前有座山,山里有座庙,庙里有个老和尚和一个小和尚。有一天老和尚对小和尚说:“从前有座山.山里有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说:“从前有座山.山里有座庙,庙里有个老和尚和一个小和尚......\\\" (虽能体现递归特点,但又不是递归)

    2024年02月14日
    浏览(39)
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用

    目录 一.strtok函数的解释与说明 ①strtok函数的功能 ②strtok函数的原型 ③strtok函数的返回值 ④细节说明 二.strtok函数的具体使用 ①PTA基础编程题目集---7-26 单词长度 ②解决问题 三.总结 Find the next token in a string.  即查找字符串中的下一个标记. 就是 将一个字符串分割成一系列

    2024年03月15日
    浏览(44)
  • 【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数

    gets函数类似于scanf函数,用于读取标准输入.前面我们已经知道scanf函数在读取字符串时遇到空格就认为读取结束,所以当输入的字符串存在空格时,我们需要使用gets 函数进行读取. gets函数的格式如下: gets函数从STDIN (标准输入)读取字符并把它们加载到str(字符串)中,直到遇

    2024年01月22日
    浏览(55)
  • 【Go 基础篇】Go语言匿名函数详解:灵活的函数表达式与闭包

    在Go语言中,函数是一等公民,这意味着函数可以像其他类型的值一样被操作、传递和赋值。匿名函数是一种特殊的函数,它没有固定的函数名,可以在代码中被直接定义和使用。匿名函数在Go语言中具有重要的地位,它们常用于实现闭包、函数式编程和并发编程等领域。 本

    2024年02月11日
    浏览(53)
  • C语言基础知识:函数中的参数与返回值

    目录 1.形式参数和实际参数 1.1形式参数 1.2实际参数 2.变量作为函数参数 3.数组作为函数参数 3.1数组元素作为函数参数 3.2一维数组名作为函数参数 3.3数组指针,即数组元素的地址作为函数参数 4.函数返回值 形参出现在被调函数当中,在整个函数体内都可以使用。形参在定义

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包