C语言——函数(第五讲)(上)

C语言——函数(第五讲)

  • 前言
  • 函数的概念
  • 库函数
    • 标准库和库函数
    • 库函数的使用方法
  • ⾃定义函数
    • 形式
    • 形参和实参
    • 形参和实参的关系

前言

Hello,各位C语言的小伙伴们,大家过年好,我是莹莹。停更差不多一个月了,都是懒惰作怪,今天我给大家分享关于函数的知识,希望大家多多支持。

函数的概念

在C语⾔引⼊函数(function)的概念,有些翻译为:⼦程序,⼦程序这种翻译更加准确⼀些。
概念:C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。这段代码是有特殊的写法和调⽤⽅法的。
C语⾔的程序其实是由⽆数个⼩的函数组合⽽成的,也可以说:⼀个⼤的计算任务可以分解成若⼲个较⼩的函数(对应较⼩的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以复⽤的,提升了开发软件的效率。
在C语⾔中我们⼀般会⻅到两类函数:
• 库函数
• ⾃定义函数

库函数

标准库和库函数

C语⾔标准中规定了C语⾔的各种语法规则,C语⾔并不提供库函数C语⾔的国际标准ANSI C规定了⼀些常⽤的函数的标准,被称为标准库.
那不同的编译器⼚商根据ANSI提供的C语⾔标准就给出了⼀系列函数的实现。这些函数就被称为库函数
有了库函数,⼀些常⻅的功能就不需要程序员⾃⼰实现了,⼀定程度提升了效率;同时库函数的质量和执⾏效率上都更有保证。
库函数要包含于头文件中
库函数相关头⽂件:https://zh.cppreference.com/w/c/header

库函数的使用方法

库函数的学习和查看⼯具很多,⽐如:
C/C++官⽅的链接:https://zh.cppreference.com/w/c/header
cplusplus.com:https://legacy.cplusplus.com/reference/clibrary/

举例:sqrt

double sqrt (double x);
//sqrt 是函数名
//x 是函数的参数,表⽰调⽤sqrt函数需要传递⼀个double类型的值
//double 是返回值类型 - 表⽰函数计算的结果是double类型的值
//sqrt  开平方
#include<stdio.h>    
#include<math.h>int main()
{double ret = sqrt(100);printf("%lf\n", ret);return 0;
}

运行结果
在这里插入图片描述

⾃定义函数

形式

ret_type fun_name(形式参数)
{
}

• ret_type 是函数返回类型
• fun_name 是函数名
• 括号中放的是形式参数
• {}括起来的是函数体

形参和实参

形参:不会向内存申请空间,不会真实存在的,所以叫形式参数。
实参:实际参数就是真实传递给函数的参数
函数的初步认识
练习:写一个加法函数,完成两个整型变量的加法操作

#include<stdio.h>
//函数的定义(创造函数)
int add(int x, int y)// **x, y是形式参数,简称形参**
{return x + y;
}int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);int c = add(a, b);//函数的调用。a,b是**真实**传递给add函数的参数,所以a,b是实参printf("%d\n", c);
}

形参和实参的关系

形参是实参的⼀份临时拷⻉。

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

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

相关文章

C#面:利用 operator 声明且仅声明了 == ,有什么错误吗?

仅声明 是错误的&#xff0c;还要声明 ! 。 如果要重载一个运算符&#xff0c;就必须同时重载一组相关的运算符。因为运算符之间存在一些预定义的关系&#xff0c;需要同时进行重载以保持一致性。 public class MyClass {public int Value { get; set; }public static bool …

学习总结16

# 【模板】最小生成树 ## 题目描述 如题&#xff0c;给出一个无向图&#xff0c;求出最小生成树&#xff0c;如果该图不连通&#xff0c;则输出 orz。 ## 输入格式 第一行包含两个整数 N,M&#xff0c;表示该图共有 N 个结点和 M 条无向边。 接下来 M 行每行包含三个整数 …

9 个管理 Windows 硬盘的最佳免费磁盘分区软件 [2024 排名]

管理分区可能是一项具有挑战性的任务。当您想到删除、缩小、移动、磁盘分区或合并分区等方面时&#xff0c;您会认为它们是很难做到的事情。然而&#xff0c;虽然 Windows 自己的磁盘管理可以处理大部分问题&#xff0c;但它无法处理管理分区的所有方面。 这时候优质的磁盘管理…

python-游戏篇-初级-超级画板

文章目录 开发环境要求运行方法PyCharmVScode 代码main.pytools.py 效果 开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统&#xff1a;Windows 7、Windows 10。Python版本&#xff1a;Python 3.7.1。开发工具&#xff1a;PyCharm 2018。Python内置模块&#xff…

uniapp中打开蓝牙需要哪些权限

在uniApp中进行蓝牙连接&#xff0c;需要获取以下权限&#xff1a; 蓝牙权限&#xff1a;用于扫描和连接蓝牙设备。定位权限&#xff1a;用于获取设备的位置信息&#xff0c;以便确定设备与蓝牙设备之间的距离。存储权限&#xff1a;用于读取和写入与蓝牙设备相关的数据。 获…

秒懂百科,C++如此简单丨第十九天:动态规划

目录 动态规划的初步理解 求最短路径数 洛谷 P1002 过河卒 题目描述 输入样例 输出样例 思路 AC Code 动态规划的初步理解 什么是动态规划&#xff1f;最直白的理解就是动态的规划。 那高级一点的理解呢&#xff1f;就是每时每刻都拿着一个小本本&#xff0c;也就是…

「优选算法刷题」:和可被K整除的子数组

一、题目 给定一个整数数组 nums 和一个整数 k &#xff0c;返回其中元素之和可被 k 整除的&#xff08;连续、非空&#xff09; 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1&#xff1a; 输入&#xff1a;nums [4,5,0,-2,-3,1], k 5 输出&#xff1a;7 解释&…

C语言-----函数功能实现---strcpystrlen

1.函数功能参数介绍 该函数的功能就是把一个字符串复制到另外的一个数组&#xff0c;包括\0&#xff1b; 2.首先我们要明确字符串的复制也是包括最后的\0的&#xff1b; void mystrcpy(char* dest, char* src) {while (*src!\0){*dest *src;dest;src;}*dest *src;} int mai…

HGAME 2024 WEEK2 WP

文章目录 WEBWhat the cow say?Select More Coursesmyflask CryptomidRSAmidRSA revengebackpackbackpack revengebabyRSA奇怪的图片plus MISC我要成为华容道高手ek1ng_want_girlfriendezWord龙之舞 回老家了&#xff0c;初七晚上才回去&#xff0c;估计week3前几天不怎么能做…

类加载过程介绍

一、类的生命周期 类被加载到jvm虚拟机内存开始&#xff0c;到卸载出内存为止&#xff0c;他的生命周期可以分为&#xff1a;加载->验证->准备->解析->初始化->使用->卸载。 其中验证、准备、解析统一称为链接阶段 1、加载 将类的字节码载入方法区中&#xf…

docker (一)-简介

1.什么是docker Docker 是一个开源的应用容器引擎&#xff0c;由于docker影响巨大&#xff0c;今天也用"Docker" 指代容器化技术。 2.docker的优势 一键部署&#xff0c;开箱即用 容器使用基于image镜像的部署模式&#xff0c;image中包含了运行应用程序所需的一…

Selenium实战教程系列(二)---元素定位

Selenium webdriver能够模拟人对浏览器进行操作的前提是界面元素的定位。元素的定位可以说是Selenium自动化脚本的基础。这一小节笔者将介绍如何在selenium中进行元素的定位。 定位元素的方法 Selenium中提供了以下定位元素的方法&#xff1a; 首先看一个HTML文件 test_page.…

(14)Hive调优——合并小文件

目录 一、小文件产生的原因 二、小文件的危害 三、小文件的解决方案 3.1 小文件的预防 3.1.1 减少Map数量 3.1.2 减少Reduce的数量 3.2 已存在的小文件合并 3.2.1 方式一&#xff1a;insert overwrite (推荐) 3.2.2 方式二&#xff1a;concatenate 3.2.3 方式三&#xff…

假期作业 12

1.整理tar指令打包压缩和解压的使用、复习file、head、tail和管道符的使用 tar 打包并压缩/拆包并解压缩 打包&#xff1a;多个文件合并成一个文件 拆包&#xff1a;把多个文件拆出来 tar指令执行结束后&#xff0c;源文件存在 借助tar指令&#xff0c;可以完成目录文件的…

ABC340 A-F题解

文章目录 A题目AC Code&#xff1a; B题目AC Code&#xff1a; C题目AC Code&#xff1a; D题目AC Code&#xff1a; E题目思路做法时间复杂度AC Code&#xff1a; F题目思路AC Code&#xff1a; A 题目 模拟即可&#xff0c;会循环都能写。 AC Code&#xff1a; #include …

OpenMVG(特征匹配、照片组重建点云、GPS位置信息、GMS)

目录 1 图像的特征匹配 2 图像中提取GPS位置信息 2.1 写入GPS信息到图像中 2.2 读取带有GPS的图像 3 SIFT/AKAZE/AKAZE_MLDB特征提取对比 4 GMS Filter 5 将球形全景图转换为6个透视视图 6 照片组重建点云 1 图像的特征匹配 #include "openMVG/features/feature.…

Python面向对象学习小记——面向过程VS面向对象

【面向过程就好比你是一个工人&#xff0c;你得亲自去做一个个任务 面向对象就好比你一个包工头&#xff0c;你可以差遣你下面的工人去做】

【网站项目】228高校教师电子名片系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

MyBatis-Plus 实体类里写正则让字段phone限制为手机格式

/* Copyright © 2021User:啾啾修车File:ToupiaoRecord.javaDate:2021/01/12 19:29:12 */ package com.jjsos.repair.toupiao.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomido…