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语言第七讲,函数入门.的更多相关文章

  1. Go语言学习笔记七: 函数

    Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...

  2. C语言程序设计(七) 函数

    第七章 函数 分而治之: 把较大的任务分解成若干较小.较简单的任务,并提炼出公用任务的方法 函数是C语言中模块化程序设计的最小单位,既可以把每个函数都看作一个模块,也可以将若干相关的函数合并成一个模块 ...

  3. 《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现2

    原文:<ArcGIS Engine+C#实例开发教程>第七讲 图层符号选择器的实现2 摘要:在第七讲 图层符号选择器的实现的第一阶段中,我们完成了符号选择器窗体的创建与调用.在第二阶段中, ...

  4. PE格式第七讲,重定位表

    PE格式第七讲,重定位表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶何为重定位(注意,不是重定位表格) 首先, ...

  5. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  6. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  7. C语言第十一讲,预处理命令.

    C语言第十一讲,预处理命令. 一丶预处理简介 什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件 这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理.提前 ...

  8. C语言第八讲,指针*

    C语言第八讲,指针* 一丶简单理解指针 说到指针,很多人都说是C语言的重点. 也说是C语言的难点. 其实指针并不是难.而是很多人搞不清地址 和 值.以及指针类型. 为什么这样说. 假设有两个变量,如下 ...

  9. C语言第四讲,typedef 关键字,以及作用域

    C语言第四讲,typedef 关键字,以及作用域 一丶typedef关键字 在C语言中,有typedef 关键字,这个关键字的作用就是允许你为类型定义一个新的名字,也就是 起个别的名字 例如: typ ...

随机推荐

  1. POST application/json 适用于传递多层的json

    本来以为自己写了那么多post请求,ajax已经难不住了呢, 结果现实无比的残酷, 后台换成了java,发多层级的json,后台就取不到了, 虽然到最后还是配置正确了,..记录下来,引以为戒, axi ...

  2. FastFDS基础

    1. FastDFS介绍 FastDFS( Fast Distributed file system)是一款轻量级的.高性能的.阿里巴巴开源的分布式文件系统.该系统的作者是余庆 (happyfish1 ...

  3. Python 多个分隔符 读取逗号和空格分开的数据

    str.split()  清除默认 空格和tab  对空格数量不敏感 str.split(' ') 只清除一个空格     对空格数量敏感 l = re.split('[^0-9.]+',s.stri ...

  4. C# Chart控件教程

    一.什么是Micosoft.Chart.Controls Micosoft.Chart.Controls是微软自带的一个图形可视化的组件,可以在Web程序和窗体程序中(Windowsform)中使用. ...

  5. 基于akka-http搭建restfull框架

    1.scala开发环境介绍 2.scala插件的demo模板介绍 3.akka-http提供demo研究 4.添加路由机制解析 package org.netsharp.rest import akk ...

  6. Unable to instantiate Action, xxxAction, defined for 'xxxAction' in namespace '/'xxx

    最近写SSH2的项目时,遇到一些小问题,action得不到service实例,遂将struct2委托给spring进行管理,然后修改了bean的id和action的class,但是运行后发现找不到ac ...

  7. 获得文件的CRC32值

    使用方法:先调用init_crc32_tab生成查询表,再调用calc_img_crc获得文件的CRC值. #define Poly 0xEDB88320L//CRC32标准 ];//CRC查询表 / ...

  8. diff 命令详解

    [自注:] 1,还有个colordiff命令,用颜色标识不同的地方.需要先安装 2,diff normal模式中 2,5表示从第二行到第五行 3,diff -c 模式中,2,5表示从第二行到第五行 4 ...

  9. java.security.SecureRandom源码分析 java.security.egd=file:/dev/./urandom

    SecureRandom在java各种组件中使用广泛,可以可靠的产生随机数.但在大量产生随机数的场景下,性能会较低. 这时可以使用"-Djava.security.egd=file:/dev ...

  10. 仿boost::any的泛型指针类any的实现

    在boost库中,any是一种特殊容器,只能容纳一个元素,但这个元素可以是任意的类型----int.double.string.标准容器或者任何自定义类型.程序可以用any保存任意的数据,也可以在任何 ...