C语言第七讲,函数入门.
C语言第七讲,函数入门.
一丶了解面向过程和面向对象的区别.
为什么要先讲面向过程和面向对象的区别?
面向过程,就是什么都要自己做. 比如你要吃饭. 那么你得自己做饭.
面向对象, 面向对象就是我要吃饭. 我只需要支付一点点酬金.就能吃了. 不用自己做了.
而C语言就是面向过程的.
也就是说. 面向过程就是自己做. 自己写函数.
二丶什么是函数.
函数不是数学上的函数. 这里的函数指的是解决一定问题的基本代码.
基本的功能单位.
比如你想写一个加法.
我们可以自己写一个Add函数. 然后进行调用则可以完成加法操作.
比如我们家里都有袋子.
这一个袋子可以装鞋子. 袜子.以及其余的各种东西.
但是鞋子会很脏.这个时候你用一个小袋子装起来. 袜子也是. 然后放到这个大袋子里面.
这个小袋子就是函数.
三丶自定义函数
语法:
- 函数返回值 函数名字 (函数行形参)
1.无参数无返回值函数的定义
首先定义一个无参数无返回值的函数.
比如我们打印输出.
- void Print()
- {
- printf("%d\r\n", );
- }
- int main()
- {
- Print();
- system("pause");
- return ;
- }
这样 main函数则会调用我们自己写的函数. 则会输出2.
2.有参数有返回值的定义
- int Sub(int a, int b) //返回值int ,所以用int类型变量接受.参数是int,且是2个.所以传入两个int参数
- {
- return a - b;
- }
- int main()
- {
- int Ret = Sub(,);//main 调用Sub
- printf("%d\r\n",Ret);
- system("pause");
- return ;
- }
3.函数的形参和函数的实参数.
- int Sub(int a, int b)
- {
- return a - b;
- }
- int main()
- {
- int Ret = Sub(,);
- printf("%d\r\n",Ret);
- system("pause");
- return ;
- }
还是我们第二个函数的例子. 此时我们要知道 Sub函数的 a和b都是形参
什么意思?
也就是说,你可以把它们看作是变量a 和 b,在函数调用过程中. 4, 3两个整形常量. 会赋值给 a 和 b
也就是额外产生的代码为:
int a = 4;
int b = 3;
但是这个是编译器产生的. 我们看不到. 如果我们的4和3是变量. 那么调用玩 sub函数之后,我们的变量是不会改变的.
例如:
- int Sub(int a, int b)
- {
- return a - b;
- }
- int main()
- {
- int nNum1 = ;
- int nNum2 = ;
- int Ret = Sub(nNum1,nNum2);
- printf("%d\r\n",Ret);
- printf("nNum1 = %d nNum2 = %d\r\n",nNum1,nNum2);
- system("pause");
- return ;
- }
输出结果.
所以说,我们的nNum1 和nNum2并没有做减法,而是Sub中 a 和 b做的减法.
等讲指针的时候在讲解怎么更改实际参数的值.
C语言第七讲,函数入门.的更多相关文章
- Go语言学习笔记七: 函数
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...
- C语言程序设计(七) 函数
第七章 函数 分而治之: 把较大的任务分解成若干较小.较简单的任务,并提炼出公用任务的方法 函数是C语言中模块化程序设计的最小单位,既可以把每个函数都看作一个模块,也可以将若干相关的函数合并成一个模块 ...
- 《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现2
原文:<ArcGIS Engine+C#实例开发教程>第七讲 图层符号选择器的实现2 摘要:在第七讲 图层符号选择器的实现的第一阶段中,我们完成了符号选择器窗体的创建与调用.在第二阶段中, ...
- PE格式第七讲,重定位表
PE格式第七讲,重定位表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶何为重定位(注意,不是重定位表格) 首先, ...
- python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍
目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- C语言第十一讲,预处理命令.
C语言第十一讲,预处理命令. 一丶预处理简介 什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件 这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理.提前 ...
- C语言第八讲,指针*
C语言第八讲,指针* 一丶简单理解指针 说到指针,很多人都说是C语言的重点. 也说是C语言的难点. 其实指针并不是难.而是很多人搞不清地址 和 值.以及指针类型. 为什么这样说. 假设有两个变量,如下 ...
- C语言第四讲,typedef 关键字,以及作用域
C语言第四讲,typedef 关键字,以及作用域 一丶typedef关键字 在C语言中,有typedef 关键字,这个关键字的作用就是允许你为类型定义一个新的名字,也就是 起个别的名字 例如: typ ...
随机推荐
- Aria2+WebUI,迅雷倒下之后的代替品
Aria2+WebUI,迅雷倒下之后的代替品 (2017-07-24 12:56:28) 转载▼ 分类: 软件 最近迅雷越来越作死了,砍第三方远程下载,强推迅雷9喂用户的屎,下载资源能砍就砍,以前 ...
- Luogu3119 草鉴定-Tarjan+Topsort
Solution 简单的$Tarjan$题. 有大佬现成博客 就不写了 → 传送门 Code #include<cstdio> #include<cstring> #inclu ...
- 状态机学习(六)解析JSON2
来自 从零开始的 JSON 库教程 从零开始教授如何写一个符合标准的 C 语言 JSON 库 作者 Milo Yip https://zhuanlan.zhihu.com/json-tutorial ...
- linux debian 9 / centos 7配置postgresSQL数据库
#读者注意:本文可以选择不看解释,直接执行每段的0中的代码 (〇):一些概念(可以跳过直接使用(一)0的代码) 1. 客户端:psql.postgreSQL的命令行客户端程序,在终端输入psql进入p ...
- Codeforces 835C-Star sky
题目链接:http://codeforces.com/problemset/problem/835/C 题意:天上有很多星星,每个星星有他自己的坐标和初始亮度,然后每个星星的亮度在一秒内会加一如果大于 ...
- sqoop加载mysql数据库
./bin/sqoop list-databases --connect jdbc:mysql://node-001:3306/ --username root --password hadoop
- Win7 VS2015 NASM汇编语言环境配置
参考了以下两个博客文章 http://blog.csdn.net/x356982611/article/details/51260841 http://www.cnblogs.com/antonioz ...
- java时间与js时间
这是一个由java获取的系统时间与js获取的系统时间不一致导致的测试缺陷 定义方式: java Date date = new Date(); js var Date date2 = new Date ...
- shell 命令 if elif else fi 用法
#! /bin/bash if Iam; then echo "it worked two" else ls echo "I am in the else" f ...
- LINK1104:无法打开文件"\.obj"原因及解决办法
那是由于具有空文件名的库导致的,只需要检查一下配置信息把出现空文件名的地方进行改正就可以了. 作者:耑新新,发布于 博客园 转载请注明出处,欢迎邮件交流:zhuanxinxin@foxmail.co ...