当前位置:网站首页>C语言中函数是什么?编程中的函数与数学中的函数区别?理解编程语言中的函数
C语言中函数是什么?编程中的函数与数学中的函数区别?理解编程语言中的函数
2022-06-28 04:43:00 【萌萌沐兮】
好多小伙伴刚学编程的时候,不知道函数和方法的区别是什么。java中叫方法,C语言又叫函数,javascript也叫函数...晕头转向。
其实,他们来自两个单词:function(函数)与method(方法)。作用基本上相同,不过,我个人的理解是:方法更加依赖于类,存在在对象/类中叫做方法,函数则不是。而后来逐渐就不是特别区分了。
在刚学编程语言的时候,有些小伙伴不知道编程语言中函数的作用。今天,我就用数学函数的角度解释编程语言中函数的作用!
总所周知,数学中的函数一般是这样的:
y = 2 * x
估计上过八年级以上学过最基本的一次函数估计都可以理解这个式子。
那么,当他在x取不同值时,y也可以相应的变化。
如果将这个式子写在代码中,看起来就成了将 2*x 的结果赋值给 y ,y接收到的就是2*x表达式的返回值!
注意这个词:返回值。在未来你会反复的听到这个词。
此时如果让你写个分别计算当x是2、3、8、10的值,
数学中,将以上值一个个代入x中进行操作,得出对应的y
编程语言中也一样,
不过,假设后面要进行相同的某些较复杂的操作(这里就输出一句:代入xxx进行运算)
(为了方便演示,拆开写了):
#include <stdio.h>
int main(){
int x,y;
x = 2;
printf("代入2进行运算\n");
y = 2*x;
printf("%d\n",y);
x = 3;
printf("代入3进行运算\n");
y = 2*x;
printf("%d\n",y);
x = 8;
printf("代入8进行运算\n");
y = 2*x;
printf("%d\n",y);
x = 10;
printf("代入10进行运算\n");
y = 2*x;
printf("%d\n",y);
return 0;
}因为做的操作过于简单,但如果是个很复杂的式子,这样写就会显得代码冗余。那么就可以利用到函数这个概念。
先把C语言函数的格式讲一下吧!
[返回值类型] [函数名] ([函数参数]...){
// 使用传过来的参数执行的操作
}
返回值类型可以是基本数据类型(如int,char,float,double...),返回的数据就是经过处理函数的数据!
那么,刚刚的式子就可以封装成一个函数(假设函数名就叫a):
int a(int x){
printf("代入了%d进行计算!\n",x);
return 2 * x;
}这是最基本的一个C语言函数的格式,小括号中间的是参数。想对什么值做处理,就传入什么值即可(也可以选择声什么都不传,但是小括号不能省略),传入的类型与定义参数的类型必须相同,接收返回值的类型必须跟返回值类型相同!(如这个例子返回值为int类型,接收也用int类型)
此时,原来的代码就可以写成,也可以完成与刚刚相同的操作:
# include <stdio.h>
int main(){
int x,y;
x = 2;
y = a(x);
printf("%d\n",y);
x = 3;
y = a(x);
printf("%d\n",y);
x = 8;
y = a(x);
printf("%d\n",y);
x = 10;
y = a(x);
printf("%d\n",y);
return 0;
}有些同学又会觉得,这还要返回一个值,然后再输出。函数既然能复用,为什么不全封装进去?确实也可以这样,不过这时就要注意了:函数不需要返回什么给调用者的时候,返回值类型就可以写void了,不过此时,再也不能拿任何变量来接收这个函数的返回值了。
完整代码如下:
#include <stdio.h>
void a(int x){
// 声明一个变量保存x处理后的结果
int y;
printf("代入了%d进行计算!\n",x);
y = 2 * x;
printf("%d\n",y);
}
int main(){
int x;
// 调用函数的时候函数内会输出
// 所以不需要一个个写printf
x = 2;
a(x);
x = 3;
a(x);
x = 8;
a(x);
x = 10;
a(x);
return 0;
}此时,编程中的“函数”的概念与数学中“函数”的概念完美结合起来。但明显编程中的函数远比数学中函数更加的灵活多变!
边栏推荐
- Mask's miserable and inspirational childhood, who is introverted by campus violence
- Sword finger offer 53 - I. find the number I in the sorted array (improved bisection)
- 如何从零设计一款牛逼的高并发架构(建议收藏)
- 机器人学DH参数及利用matlab符号运算推导
- Play with double pointer
- 别卷!如何高质量地复现一篇论文?
- 2022-06-27:给出一个长度为n的01串,现在请你找到两个区间, 使得这两个区间中,1的个数相等,0的个数也相等, 这两个区间可以相交,但是不可以完全重叠,即两个区间的左右端点不可以完全一样。
- wordpress zibll子比主题6.4.1开心版 免授权
- Google Earth engine (GEE) - global flood database V1 (2000-2018)
- Database garbled
猜你喜欢

Severe tire damage: the first rock band in the world to broadcast live on the Internet

Code understanding: implementing volume models for hangwriten text recognition

Matlab exercises -- basic data processing

27 years, Microsoft IE is over!

Mask's miserable and inspirational childhood, who is introverted by campus violence

How to clean the nozzle of Epson l3153 printer

cgo+gSoap+onvif学习总结:8、arm平台交叉编译运行及常见问题总结

Sword finger offer 47 Maximum gift value (DP)

2022新版nft源码中国元宇宙数字藏品艺术品交易平台源码

Analysis of distributed transaction solution Seata golang
随机推荐
2022年最新辽宁建筑八大员(标准员)考试试题及答案
学习太极创客 — MQTT 第二章(六)MQTT 遗嘱
信息学奥赛一本通 1360:奇怪的电梯(lift)
Standard particle swarm optimization C language program
Google Earth engine (GEE) - global flood database V1 (2000-2018)
Necessary skills for test and development: actual combat of security test vulnerability shooting range
2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案
[Matlab bp regression prediction] GA Optimized BP regression prediction (including comparison before optimization) [including source code 1901]
The growth summer challenge is coming | learn and create two major tracks, and start the tutor registration!
学习太极创客 — MQTT 第二章(四)ESP8266 保留消息应用
Sword finger offer 53 - I. find the number I in the sorted array (improved bisection)
The coming wave of Web3
PHP code wechat, official account and enterprise wechat send emoticons [u+1f449]
机器人学DH参数及利用matlab符号运算推导
2022高处安装、维护、拆除考试题及答案
OracleData安装问题
Why is the frame rate calculated by opencv wrong?
The second round of free public classes of the red team is coming ~ 8:00 tomorrow night!
flinkcdc采集oracle,oracle数据库是CDB的
代码理解:IMPROVING CONVOLUTIONAL MODELS FOR HANDWRITTEN TEXT RECOGNITION