函数——C语言的重要部分

C语言函数题-拆分实数的整数与小数部分 6-2 拆分实数的整数与小数部分 (15分) 本题要求实现一个拆分实数的整数与小数部分的简单函数。 函数接口定义: void splitfloat( float x, int *intpart, float *fracpart ); 其中x是被拆分的实数(0≤x<10000),intpart和fracpart分别是将实数x拆分出来的整数部分与小数部分。 裁判测试程序样例: #include <stdio.h> void splitfloat( float x, int *intpar 阅读详情

函数

大纲:

函数是什么

在维基百科中对函数的定义:子程序

在计算机科学中,子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成,它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

一般会有输入参数并由返回值,提供对过程的封装和细节的隐藏,这些代码通常被集成为软件库。

库函数

为什么会有库函数:

        1.我们知道在我们学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果打印到屏幕上看看,这个时候我们会频繁的使用一个功能:将信息按照一定的格式打印到屏幕上(printf)

        2.在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcypy)。

        3.在编程时我们也计算,总是会计算n的k次方这样的运算(pow)。

像上面我们描述的基础功能,它们是业务性的代码,我们在开发的过程中每个程序员都可能用得到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列的库函数,方便程序员进行软件开发。

具体怎么学习库函数呢?

cplusplus一个C++语言的的学习函数网站。

c++兼容c。

C语言官方网站:cpreference

cplusplus界面介绍

strcpyr函数为例

char是函数名,strcy是参数,后面括号里面的是返回类型

这里是指把源头指针指向的字符串转移到目标指地址。

copy string 是函数功能的介绍

parameter 是形式参数。

Return Value 是返回值的介绍

Output 是指这个函数最后输出的结果是什么

See also 则是指和这个函数相关的其他函数

现在,我们学习几个函数:

strcpy 字符串赋值函数

我们要把arr2传到arr1里面去

于是,arr2就是源头,arr1就是目标地址。

当出现某函数未定义的错误时大概率就是头文件没有包含

这样就是代码正常运行

strcpy可以把目标变量中的\0一同拷贝

接下来学习 memset 语言初始化函数

这段代码就是将arr数组中的前5个字符替换成 x

上面两个函数的头文件都是 #include<string.h>

学会使用库函数

练习: 写出函数找出两个整数中的最大值。

就是这段代码

写出一个函数可以交换两个整型变量的内容

这是代码及运行结果

但是却没有交换

因为 当函数调用的时候,实参(a,b)传给形参(x,y),形参是实参的一份临时拷贝。所以对形参的修改是不影响实参的

解决方法是 传送 a b 的地址

这叫传址调用,上面不能实现的叫做传值调用

函数的参数

这里的实参可以是常量,变量,及表达式和函数。

必须得有确切的值

函数的调用

传值调用与传址调用

写出一个函数可以交换两个整型变量的内容

这是代码及运行结果

但是却没有交换

因为 当函数调用的时候,实参(a,b)传给形参(x,y),形参是实参的一份临时拷贝。所以对形参的修改是不影响实参的

解决方法是 传送 a b 的地址

这叫传址调用,上面不能实现的叫做传值调用

练习:

(1)打印100~200之间的素数

这个是代码

这里的sqrt函数是计算数字的平方根,使用时需要加上头文件#include

(2)打印1000~2000之间的闰年

(3)写出一个函数,实现一个整型有序数组的二分查找

二分查找/折半查找

在一个有序数组中查找具体的某个数字n。

先将最左边的数字标记为left,最右边的标记为right,再将两者相加除2所得值mid相比较,如果较大,mid则变为left,right则为原来的right。较小则相反。

假设n = 7,首先left下标为0right下标为9,mid则为4,4

mid还可以这样写

所以这道题可以写成这样

结果是

但这里计算数组大小时计算的是错误的

这里其实传送的只是首元素的地址

这个地方的arr本质不是一个数组而是一个指针

这个是修改正确后的代码

其实形参写成数组也可以

(4)写一个函数,每调用一次这个函数,就会将num的值增加1

viod函数

void函数与其他函数的区别,viod函数不需要返回值,而其他函数需要

注意:

函数,如果不写返回值,函数默认会返回一个值,有些编译器上返回的是:最后一条指令产品的结果

函数的嵌套调用和链式访问

嵌套调用

main函数调用three_line,three_line调用new_line

链式访问

把一个函数的返回值作为另一个函数的参数

这里的字符串长度是6,strlen的返回值6就作为了printf函数的参数,所以结果就是6

看下面这个代码

我们可以通过查询cplusplus得,printf函数的返回值是打印在屏幕上字符的个数。

最里面的printf函数打印的是43,他的返回值就被中间的printf打印,结果是2,再然后中间的函数的返回值又被最外面的打印,结果是1。所以最终结果是43 2 1

函数的声明和定义

当我们的代码是这样时运行会报错说Add未定义

这是因为编译器扫描时是从上往下扫描,而扫到Add时发现没有见过Add,这时的解决办法是要么将Add写在前面,要么就是在前面声明一下Add函数(只要在Add函数使用之前就可以)

这就是函数声明

高级的函数调用

当我们需要多个人合力写项目时,就需要用到较为高级的函数调用

我们首先写一个主函数

我们再新建一个源文件写出我们即将调用的函数

我们再在主函数头部写出要调用的函数

然后再运行

一般我们在头文件中放函数的声明,类型的定义,头文件的包含

在源文件放函数的定义

这样写的好处是我们可以按模块写

还可以把函数的实现的代码隐藏起来

如何出售的代码

假如我我是张三通过业余时间写了一个游戏引擎,想卖它挣钱。

我们要实现的效果是:我可以给您用,但你不知道我是怎么写的

假设这是张三创建的游戏引擎

李四则对这个游戏引擎比较感兴趣,想买

但张三又不想让李四看见

张三则就要右击鼠标点击属性

在配置属性的常规选项下将配置类型改为静态库

点应用,确定

这时我们再按Ctrl+F5时会发现无法运行

但它也已经生成了一个add.lib文件

这个.lib文件就是张三游戏引擎所对应的静态库文件

被李四买走就可以用了,李四买完后放在他项目的debug文件夹里

但李四打开.lib文件发现都是些乱码,根本看不懂

上面其实是一些二进制信息,里面包含了很有价值的东西

张三随后再把头文件给李四

李四把.h文件加到工程里面后,发现还是无法编译

报错是无法解析的外部符号Add

这里要想使用就要加载一下静态库

以后我们要卖代码时只需要将运行的.lib文件和.h文件卖出即可

这就更加说明了以后写代码要规范一些

对于这里的头文件包含,编译器在处理的时候就会把头文件的内容直接拷贝到.c文件里

CyAPI函数简介.doc 本文档介绍了在usb开发中会用到的一些基本函数,新人可以用来参考学习 立即下载

相关推荐

MATLAB不能识别已安装的visual studio 2015解决方法

首先,对于MATLAB识别已经安装的vs版本通过命令: mex -setup 下图为本电脑下同时安装的两个visual studio 如果搞清楚MATLAB识别电脑上安装vs的过程,可通过命令: mex -setup -v MATLAB输出识别编译器的整个过程。其中HKLM和HKCU分别是注册表中的HKEY_CURRENT_USER,HKEY_LOCAL_MA…的缩写,MATLAB没有找到对应编译器是由于注册表里没有对应信息(主要是文件路径,C++编译器的路径),或者在注册表里存在该信息,但是找不到

qq_36320710的博客 4897

MATLAB中的一维插值与函数拟合

本文主要记录常用的一维插值与函数拟合的使用方法 文章目录前言一、一维插值二、函数拟合2.1 多项式拟合2.1.1多项式拟合指令2.1.2 图形窗口的多项式拟合2.2 指定函数拟合参考资料 前言 最近在学习数学建模,这部分关于怎么使用Matlab,刚好记录下来,做电赛的时候这些常用的插值、拟合工具也是需要学习的,刚开始学,写的不好,欢迎大家批评指正。 以下是本篇文章正文内容 一、一维插值 用MATLAB软件求解插值问题 在MATLAB中提供了一个一维插值函数interp1, 它的调用格式为 cy=in

qq_45977463的博客 6351

QtWebApp的使用【在Qt中搭建HTTP服务器】(一)

用Qt和QtWebApp能够实现在C++中开发HTTP Web服务器应用程序。 首先,需要先安装Qt的软件开发工具包。点此下载 其次,下载最新的QtWebApp库。点此下载 下载并解压缩QtWebApp ZIP文件。你将会看到: 如何使用QtWebApp 1)将QtWebApp.zip文件解压到文件夹中,并创建一个名为“ MyFirstWebApp”的新Qt控制台项目。然后,建立如下文件结构: 2)将以下行添加到MyFirstWebApp项目的项目文件中: QT += network include(

饭的笔记本 2万+

c语言 使用函数实现字符串部分复制

本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。 函数接口定义: void strmcpy( char *t, int m, char *s ); 函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。 裁判测试程序样例: #include <stdio.h>...

inooll的博客 8000

通过CN3口直接控制台达伺服电机A2-M(二)

既然可以通过RS485与伺服驱动器进行通讯,那么就肯定可以控制转速 首先,需要了解下 ‘控制模式及控制命令输入源设定’ 依据以上资料,速度控制模式有两种,S和SZ模式,分别对应模式选择中的02和04,对P1-01的地址0102进行写地址操作即可实现,一开始我使用了S模式,但是这个模式在寸动模式下会自动运转,不符合我控制的要求,后面改用SZ模式,就可以实现零速度。 使用串口工具发送命令:“01 06 01 02 00 04 28 35”即可以实现设置,设置完成后可以手动在伺服驱动器的按键面板上进行确

HKing_evil的博客 6825

高通CamX架构解析(一)——核心组件与数据流设计

本文深入解析高通CamX相机架构的核心组件与数据流设计。CamX采用模块化与数据驱动思想,将复杂处理流程拆解为Node、Pipeline、Session等独立组件,并通过CHI层实现硬件接口与定制功能的分离。文章详细阐述了从请求下发到结果返回的完整数据流,并提供了实用的调试与分析指南,帮助开发者理解这一高效、灵活的现代相机架构。

k8l9m0n的博客 235

c语言程序的函数组成包括两个部分,c语言函数由哪两部分组成

在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体,函数体是编程语言中定义一个函数功能的所有代码组成的整体,函数头是指函数体之前的所有部分,应用于数学、程序设计领域,作用是给出了该函数的返回类型。在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体。函数体是编程语言中定义一个函数功能的所有代码组成的整体。函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。函数体内...

weixin_35728532的博客 9374

Easy3D&CGAL文章目录汇总

Easy3D&CGAL文章目录汇总

dayuhaitang1的博客 2863

c语言部分函数笔记

需要注意的点与strcat函数类似,是溢出问题,当目标数组(第一个数组)中放不下源头数组(第二个数组)时,会报错。有时候我们想对arr数组中的数据再次赋值到arr数组中,在vs2022的环境中,可以继续使用memcpy函数,在其他版本中不一定。当第一个数组中的对应字符值大于第二个数组中的对应字符值时,返回1,全部相等返回0,第一个数组中的对应字符值小于第二个数组中的对应字符值时,返回-1.这个函数一共需要三个参数,第一个参数是数据目的地地址,第二个参数是数据源头地址,第三个参数是传输的字节大小。

2301_79841550的博客 695

第 0 篇|开篇:为什么我们要从 RNN 讲到 Transformer?

本文介绍了NLP模型的发展历程,从早期规则式方法到如今Transformer模型的演进脉络。文章强调理解NLP技术需要从基础模型入手,重点分析了传统机器学习的局限性(无法处理变长有序输入和深层语义关联),以及RNN如何通过循环结构首次实现顺序依赖捕捉。作者指出Transformer之所以成为主流,是因为它通过自注意力机制解决了RNN的核心痛点(低效串行处理和长距离依赖问题)。专栏将采用"从问题到解决方案"的讲解方式,帮助读者建立完整的NLP知识体系,避免孤立学习和盲目追新。全文旨在为初学

记录 IT 领域经验与见解的博客 73

【软件使用】向日葵网络连接错误

一直报这个错误,尝试了修改版本无果,各种密码都正确,最后得出结轮是时间没有同步,查看代理是否更改了时间,做一下同步即可。

andeyeluguo的博客 7975

C语言函数首部哪三部分,c语言函数由哪两部分组成

在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体,函数体是编程语言中定义一个函数功能的所有代码组成的整体,函数头是指函数体之前的所有部分,应用于数学、程序设计领域,作用是给出了该函数的返回类型。在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体。函数体是编程语言中定义一个函数功能的所有代码组成的整体。函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。函数体内...

weixin_39685459的博客 4175

WPF实战项目十七(客户端):数据等待加载弹框动画

1、在Common文件夹下新建文件夹Events,新建扩展类UpdateLoadingEvent。2、新建一个静态扩展类DialogExtensions来编写注册和推送等待消息弹框方法。3、在ViewModel中添加实现类NavigationViewModel。5、在View文件夹下新建用户控件ProgressView.xmal。4、在主窗体MainView.xmal中给弹窗界面命名。6、在MainView.xmal.cs中注册消息。

yigu4011的博客 2348

【C语言】字符串函数及其部分模拟实现

字符串函数及其部分模拟实现

我爱我想但不嫉妒 我哭我笑但不抱怨 我羞我愧但不悲叹 我怒我恨但不自弃 941

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

c语言的函数由 组成,c语言函数由哪两部分组成

在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体,函数体是编程语言中定义一个函数功能的所有代码组成的整体,函数头是指函数体之前的所有部分,应用于数学、程序设计领域,作用是给出了该函数的返回类型。在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体。函数体是编程语言中定义一个函数功能的所有代码组成的整体。函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。函数体内...

weixin_33781129的博客 6359

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

c语言中的函数的组成,c语言函数由哪几部分组成

c语言函数由哪几部分组成发布时间:2020-07-16 15:46:42来源:亿速云阅读:476作者:Leah这篇文章将为大家详细讲解有关c语言函数由哪几部分组成,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体,函数体是编程语言中定义一个函数功能的所有代码组成的整体,函数头是指函数体之前的...

weixin_32154667的博客 1万+

C语言string.h函数详解及部分模拟实现

一键获取string.h函数解析

m0_73900674的博客 9592

c语言字符串函数 小数,C语言modf()函数:求双精度数的小数部分

函数名: modf头文件:函数原型: double modf(double value, double *iptr);功 能: 求双精度数的小数部分参 数: double value 为要操作的双精度数 ,double *iptr 为要传回整数部分的变量指针返回值: 返回value的小数部分程序例: 分别求出双精度number的小数部分和整数部分,并将结果输出#include#includ...

weixin_32337913的博客 846

c语言函数部分,C语言函数大全(部分)

该楼层疑似违规已被系统折叠隐藏此楼查看此楼2数学函数,所在函数库为math.h、stdlib.h、string.h、float.hint   abs(inti)         返回整型参数i的绝对值double cabs(structcomplexznum)   返回复数znum的绝对值double fabs(doublex)        返回双精度参数x的绝对值long  la...

weixin_36429702的博客 196

c语言函数部分

大家一定在数学中早就接触过函数,那c语言中的函数是什么样的呢,今天我想来讲讲。我觉得c语言里面的函数和数学里面的函数本质上是一样的,都是给参数然后输出参数。

lzk666_csdn的博客 987

C语言函数部分知识点总结

2501_91740090的博客 319

C语言部分字符串函数及部分内存函数

C语言字符串函数及内存函数

Wynnn_sw的博客 86

C语言函数部分

一、变量的作用域 1.概念:变量起作用的范围。 2.局部变量与全局变量: ①局部变量: 概念:在函数内部或某个控制块的内部定义的变量(理解“局部”) 作用域:函数内部 作用:增强了函数模块的独立性 ②全局变量: 概念:在函数外面定义的变量 作用域:从该变量定义的位置开始,直到源文件结束(理解“全局”) 作用:同一文件的所有函数都可以引用全局变量,增强了各函数间数据的联系 ...

weixin_30807677的博客 184

C语言time.h里部分函数

在 C 语言中,<time.h>头文件提供了与日期和时间相关的功能。通过这个头文件,可以获取当前时间、处理时间、进行时间计算等操作。

m0_74087691的博客 1105

C语言,函数部分

求和函数#include<stdio.h> void sum(int begin, int end) { int i; int sum = 0; for ( i=begin; i<=end; i++){ sum += i; } printf("%d到%d的和是%d\n", begin, end, sum); }int main() {

Forgotten Lands 363

【C语言】关于处理字符和字符串的库函数,以及部分函数的实现

关于处理字符和字符串的库函数,以及部分函数的实现

是阿建吖! 963
上一篇: 分支和循环语句
下一篇: 递归——最烧脑的一集
宴之敖者、
博客等级 码龄4年 131粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值