C语言——函数(1)

C语言实现MATLAB中的fir1函数(含代码) 最近导师要求我将师兄写的一篇关于fsk调制解调的MATLAB代码用VS2013编成C语言,方便后续应用到工程实践中。由于本人编程水平有限,并且C语言只有在大学的时候水水的学过一遍,所以此次代码可能有许多疏漏,欢迎批评指正。 1.明确目标 本次要用C语言实现如下代码功能: recv_lowfilter = fir1(256,1.2*2*Br/fs); 这是一句MATLAB代码,该句代码的重点在于 ... 阅读详情

大家好,我是小锋,今天给大家讲解的是函数。

什么是函数

维基百科中对函数的定义:子程序
在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method,
subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组
成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软
件库。

库函数

在C语言创建之初是没有库函数的,但是程序员在编写代码时有一些需是经常需要的每次需要都重新编写代码不免有些繁琐,再加上每个人写代码的风格不同就容易产生bug,所以C语言就将我们常用的功能搜集起来并实现,而这些函数就叫做库函数。

库函数多种多样我们不需要全部记住,用的多了自然而然就记住了,查询库函数我们在

http://zh.cppreference.com  中查询,下面我来给大家讲解一下怎么学习库函数。
学习函数我们主要从 函数名,返回类型,所需参数,头文件,函数作用,这几个点来学习
下面给大家举个例子:

 返回类型:函数结束时返回值的类型(这里的void*意思是返回一个不知道是什么类型的指针)

函数参数:是函数实现所需要的参数(这里size_t是无符号整型)

头文件:使用库函数,必须包含 #include 对应的头文件。

自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。 但是不一样的是这些都是我们自己来设计。
我们举一个例子:
写一个函数可以找出两个整数中的最大值。

 这里定义一个变量c用来储存函数的返回值。

再举个例子:
写一个函数可以交换两个整形变量的内容。

这里我们明明调用了函数并进行了交换,为什么a和b的内容没有交换。、

我们调试看看

经过调试我们可以看到变量a,b与变量x.y的地址并不相同(&的作用是取出地址)说明x.y与a.b所对应的并不是同一个空间,x.y交换的内容自然就不是a.b中的内容 。

这里我们就要讲到形参与实参了

实际参数(实参):
真实传给函数的参数,叫实参。
实参可以是:常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形
参。
形式参数(形参):
形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内
存单
元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有
效。
这里我们可以看到 add 函数在调用的时候, x y 拥有自己的空间,同时拥有了和实参一模一样的内容。,所以我们可以简单的认为:形参实例化之后其实相当于实参的一份临时拷贝,对形参的修改不会影响实参的内容

函数的调用

传值调用

函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。

传址调用

传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操
作函数外部的变量。
所以要让函数中的x.y交换内容时a.b也同样交换内容我们应该采用传址调用
所以上面的例题应该这样写

 

以上就是全部内容了,如果有错误或者不足的地方欢迎大家给予建议。

 

【龙芯1c库】龙芯1c上c语言写的函数调用汇编语言写的函数 封装龙芯1c上常见外设接口,便于在裸机程序或实时操作系统中使用,类似于STM32库,正在不断添加中。Git地址是https://gitee.com/caogos/OpenLoongsonLib1c封装龙芯1c库难免会涉及到汇编程序,本文以c语言main()函数中调用一个用汇编实现的禁止中断的函数。源码如下test_entry.S#define v0 $2 /* return v... 阅读详情

相关推荐

C语言用递归函数1累加到100求和

C语言用递归求1累加到100求和要实现的功能如下完整源代码实现如下 要实现的功能如下 1+2+3+…+100,用递归实现 完整源代码实现如下 #include <stdio.h> int x = 0; int function(int num); int main() { int num = 0; int y = function(num); printf("%d\n",y); return 0; } int function(int num) { if(x<100) { x++; nu

希望我的博客,能帮上你解决学习中工作中所遇到的问题 6670

MATLAB函数fir1的C语言移值

结果是完全一样的,OK!

weixin_39458727的博客 651

C语言递归函数求解1100的累加和

总结一下,递归函数是一种强大的工具,可以用于解决许多问题,包括求解累加和。在本文中,我们展示了如何使用C语言编写一个递归函数来计算从1累加到100的和。基本情况是递归函数结束的条件,它通常是一个简单的问题,可以直接求解。在本文中,我们将使用递归函数来求解从1累加到100的和。我们将展示如何使用C语言编写递归函数,并提供相应的源代码。现在让我们来编写一个递归函数来求解1100的累加和。该函数的目标是将从1到n的所有数字相加,并返回结果。函数来计算从1100的累加和,并将结果存储在变量。

uote_e的博客 1704

C语言 | 函数执行成功时,究竟是return 1 还是return 0?

今天分享的内容是关于函数执行成功,返回0还是1的讨论~ 基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数。C语言代码的组合千变万化,因此函数的功能可能会比较复杂,不同的输入,常常产生不同的输出结果。 不同的输入,常常产生不同的输出结果。 一、C语言函数的返回值 C语言函数可以通过返回值表示输出结果,例如 log() 函数的返回值会根据不同的输入,返回不同的值。 再比如,我们定义一个函数 my

HUYA69的博客 1890

C语言 使用递归函数计算1到n之和

#include <stdio.h> int sum(int n); int main() { int n; scanf("%d", &n); printf ("%d\n", sum(n)); return 0; } int sum(int n){ if(n > 1){ return n + sum(n - 1); } else if(n <= 0){ return 0; }else { return 1;

꧁༺ʚvv༒catɞ༻꧂的博客 1万+

单片机c语言延时1ms函数,单片机c语言延时函数用int与char有延时差吗?

单片2113机的C语言关于延时函数主要有两种一种是用5261for循环,通过单片机执4102行空指令达到延时的1653目的如:for(i=0;i<100;i++){;}这个简单的语句会执行100次空指令每一次指令的时间可以大概确定因此这个是最简单的延时函数第二种是通过定时器的方式来实现定时器是通过对单片机的晶振进行计数然后在定时器中断服务函数里面实现定时时间的计算及设置51单片机的定时器0中...

weixin_29183637的博客 8595

编写函数完数c语言,用C语言输出1-1000内的完数,形如6 = 1+2+3

二、完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。用C语言输出1-1000内的完数,形如6 = 1+2+3#include//实现打印出1-1000内所有的完数,格式为: 6=1+2+3//1.判断一个数是不是完数bool IsPerfect(int num){int tmp=0;//...

weixin_39531635的博客 1518

C语言函数练习1

1.求自然数1~10的平方根和立方数#include <stdio.h>#include <math.h> int main(){int x=1;double squareroot, power; while(x<=10){squareroot=sqrt(x);power=pow(x, 3); printf("%d的平方根是:%.2...

datongwu2067的博客 190

c语言函数详解1——自定义函数

自定义程序的讲解和一些规范

Solaku7的博客 2万+

c语言prime函数怎么用_C语言编程求解:11000之间所有的素数

点击上方蓝字“C语言修仙”关注公众号哦先给出素数的定义:素数是只能被1和自身整出的整数。1不是素数算法思考:判断一个数是不是素数,只需要判断它是不能只能被1和自身整除。那怎么判断一个数不能被除1和自身之外的其他数整除呢?想法是写一个循环,循环里依次除以从2到这个数减1的所有的整数,如果都不能整除,说明这个数是素数;如果出现一个能整除的数,那么这个数不是素数。(其实,判断素数还可以优化,循...

weixin_39761573的博客 5185

C语言函数】#1

为什么需要函数1.c语言结构化设计的思想,把大问题拆成小问题 2.减少重复劳动,提升编程效率 返回值的类型标识符 函数名(形式参数) // 函数头---head { 函数体 //body } 返回值的类型标识符 // 用来说明 该函数带出来数据的类型 函数

weixin_69318561的博客 1911

C语言函数1

目录 1.什么是函数? 2.函数的分类 2.1 什么是库函数? 2.2 自定义函数 3. 函数的参数 3.1 函数的实际参数(实参) 3.2 函数的形式参数(形参) 4. 函数的调用 4.1 传值调用 4.2 传址调用 1.什么是函数? 数学中我们常常见到函数的概念。但是你了解C语言中的函数吗? 维基百科中对函数的定义:子程序 在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, ...

Rinki123456的博客 719

C语言函数1

函数的一些概念,未完待续~

WangLongxyd的博客 530

C语言函数1

函数 维基百科对函数的定义为:子程序 在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram,callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏...

Nakahara_Chuya的博客 390

EP1【C语言函数

函数函数定义c语言函数的分类库函数自定义函数函数的参数函数的调用函数的嵌套调用和链式访问 函数定义 在计算机科学中,函数是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。 c语言函数的分类 库函数 我们在开发的过程中每个程序员都可能用的到的代码,为了支持可移植性和提高程序的效率,C语言基础库中提供了一系列类似的库函数,方便程序员进行开发。 C语言中常用的库函数有 I

weixin_51780775的博客 276
上一篇: 计算 n个n的阶乘相加
下一篇: 在一个有序数组中查找具体的某个数字n
一只努力锋
博客等级 码龄4年 233粉丝 49原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值