当前位置: 首页 > news >正文

营销型网站建设域名网站建设托管

营销型网站建设域名,网站建设托管,网站图片速度,广州网站优化指导函数的概述 函数#xff1a;实现一定功能的#xff0c;独立的代码模块。我们的函数一定是先定义#xff0c;后使用。 使用函数的优势#xff1a; 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数#xff0c;减少代码量。 2. 借助函数可以减…函数的概述 函数实现一定功能的独立的代码模块。我们的函数一定是先定义后使用。 使用函数的优势 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数减少代码量。 2. 借助函数可以减少重复性的代码。 3. 实现结构化模块化 程序设计思想: 结构化程序设计思想将大型的任务功能划分为相互独立的小型的任务模块来设计。 函数是C语言程序的基本组成单元 C语言程序是由一个必然是main函数或多个函数组成。 函数的分类 从函数实现的角度 库函数C语言标准库实现并提供使用的函数比如常见的有printf()scanf() 用户自定义函数需要程序员自行实现开发中大部分都是这样的函数 从函数形式的角度 无参函数函数调用时无需传参可配可不配返回值。 有参函数函数调用时需要参数传递数据经常需要配套返回值使用。 相关概念 主调函数主动去调用其他函数的函数。 被调函数被调用的函数 很多时候一个函数既可以是主调函数也可以是被调函数。这种情况一般出自自定义函 数。 函数的定义 语法 函数首部 返回类型函数返回值的类型 函数名函数的名称遵循标识符命名使用英文字母、数字、_、$不能以数字开头建议小写 下划线命名法 形参列表用于接收主调函数传递的数据如果有多个用 , 分隔且每一个形参都需要指定类 型。 面试题 注意 函数类型标识符变量类型说明符相同它表示返回的函数值的类型。 在C语言中还可以定义无类型即void类型的函数这种函数不返回函数值只是完成某种功 能。 如果省略函数的类型标识符则默认为是int型。 函数中返回语句的形式为 return(表达式)或 return 表达式其作用是将表达式的值作为函数值返 回给调用函数。其中表达式的类型应与函数类型一致。 如果形参表列中有多个形式参数则它们之间要用 , 分隔。 如果形参表中有多个形参即使它们的类型是相同的在形参表中也只能逐个进行说明。 fun1(in t a,int b){} 一个完整C程序中的所有函数可以放在一个文件中也可以放在 多个文件中。 案例 案例1 案例2 形参和实参 概念 形参形式参数 函数定义时指定的参数形参是用来接收数据的函数定义时系统不会为形参申请内存只有当函 数调用时系统才会为形参申请内存用于存储实际参数并且当函数返回系统会自动回收为形参 申请的内存资源。(本质上所有函数都有return只不过当我们的函数返回类型是void的时候return 关键字被省略了) 实参实际参数 函数调用时主调函数传递的数据参数常量、变量、表达式..只要有确定的值实参是传递的 数据。 实参和形参必须类型相同。若不同时按赋值规定自动进行类型转换。 在C语言中参数传递遵循 单向值传递 实参只是将自身的值传递给形参而不是实参本身。形参 的值的改变不会影响实参。 实参与形参在内存中占据不同的内存空间尽管可能实参和形参名称是一样的。 案例2 函数的返回值 若不需要返回值函数中可以没有return语句。 一个函数中可以有多个return语句但任一时刻只有一个return语句被执行。 被调函数返回给主调函数的结果数据可以是变量、常量、表达式只要是有确定值即可。 返回值类型一般情况下需要和函数中return语句返回的数据类型保持一致如果不一致以函数定 义时指定的返回类型为标准。也就是返回值类型和实际返回值可以存在自动类型转换或者强制类型 转换的关系。 案例1 案例2 案例3 函数的调用 调用方式 1. 函数语句 test(); int result max(2,4); 2. 函数表达式 4 max(2,4); 3. 函数参数 printf(%d,max(2,4)) 在一个函数中调用另一个函数须具备以下条件 ① 被调用的函数必须是已经定义的函数 ② 若使用库函数应在本文件开头用#include包含 ③ 若使用用户定义的函数而用户函数又在主调函数的后面则应在主调函数中对被调用的函数进 行声明。声明的作用是把函数名、函数参数的个数和类型等信息通知编译系统以便在遇到函数时 编译系统能正确识别函数并检查函数调用的合法性。 函数声明 函数调用时往往要遵循 先定义后调用 但如果我们对函数的调用操作出现在函数的定义之前则需 要对函数进行声明。 函数声明的作用 是把函数名、函数参数的个数和返回类型等信息通知给编译系统以便于在遇到函数时编译系统能 正确识别函数并检查函数调用的合法性。 声明的方式 函数首部后加上分号 函数首部后加上分号可省略形参名但不能省略参数类型。 函数的嵌套调用 函数不允许嵌套定义但允许嵌套调用。 嵌套调用在被调函数内有去主动去调用其他函数这样的函数调用方式称之为嵌套调用 案例1 案例2 函数的递归调用 递归调用的含义在一个函数中直接或者间接调用了函数本身称之为函数的递归调用。 递归调用的本质 是一种循环结构它不同于之前所学的whiledo-whilefor这样的循环结构这些循环结构是借 助循环变量而递归是利用函数自身实现循环结构如果不加以控制很容易产生死循环。 递归调用的注意事项 1. 递归调用必须要有出口一定要终止递归否则会产生死循环。 2. 对终止条件的判断一定要放在函数递归之前。 3. 进行函数的递归调用。 4. 函数递归的同时一定要将函数调用向出口逼近。 案例1 案例2 数组做函数参数 注意 当用数组做函数的实际参数时则形参应该也要用数组/指针变量来接收但请注意此次并不 代表传递了数组中所有的元素数据而是传递了第一个元素的内存地址数组首地址形参接收这 个地址后则形参和实参就代表了同一块内存空间则形参的数据修改会改变实参的。这种数据传递 方式我们可以称之为“引用传递”。 如果用数组做函数形式参数那么我们提供另一个形参表示数组的元素个数。原因是数组形参代 表的仅仅是实际数组的首地址。也就是说形参只获取到了实际数组元素的开始并未获取元素的结 束。所以提供另一个形参表示数组的元素个数可以防止在被调函数对实际数组元素访问的越界。 但有一个例外如果是用字符数组做形参且实际数组中存放的是字符串数据形参是字符数 组实参是字符串。则不用表示数组元素的个数的形参原因是字符串本身会自动结束符\0。 案例-数组元素做函数实参 案例2 变量的作用域 引入问题 我们在函数设计过程中经常要考虑对参数的设计换句话说我们需要考虑函数需要几个参数需 要什么类型的参数但我并没有考虑函数是否需要提供参数如果说函数可以访问到已定义的数据 则就不需要提供函数形参那么我么到底要不要提供函数参数取决于什么答案就是变量的作用域 如果函数在变量的作用域范围内则函数可以直接访问数据 变量的作用域 概念变量的作用范围也就是说变量在什么范围是有效的。 变量的分类 根据变量的作用域不同变量可分为全局变量和局部变量 局部变量 全局变量 建议在全局变量定义时初始化。如果不初始化系统会将全局变量初始化为00 | \0 |0.0。 使用全局变量的优缺点 优点 1. 利用全局变量可以实现一个函数对外输出的多个结果数据。 2. 利用全局变量可以减少函数形参个数从而降低内存消耗以及因形参传递带来的时间消耗。 缺点 1. 全局变量在程序的整个运行期间始终占据内存空间会引起资源消耗。 2. 过多的全局变量会引起程序的混乱造成程序结果错误。 3. 降低程序通用性特别是当我们进行函数移植时不仅仅要移植函数还要考虑全局变量。 4. 违反了“高内聚低耦合”的程序设计原则。 总结我们发现弊大于利建议尽量减少对全局变量的使用函数之间要产生联系仅通过实参形参的方式产生联系。 作用域举例 案例 注意 如果全局变量外部变量和局部变量同名程序执行的时候 就近原则 变量的生命周期 概念 变量在程序运行中的存在时间。 根据变量存在的时间不同变量可分为静态存储方式和动态存储方式。 变量的存储类型 存储类型 auto auto存储类型只能修饰局部变量被auto修饰的局部变量是存储在动态存储区的。auto也是局部变 量默认的存储类型。 static 修饰局部变量局部变量会被存储在静态存储区。局部变量的生命周期被延长但是作用域不发 生改变。 修改全局变量全局变量的生命周期不变但作用域被衰减。一般限制全局变量只能在本文件 内。 demo01.c demo02.c extern 外部存储类型只能修饰全局变量次全局变量可以被其他文件访问。相当于扩展了全局变量的 作用域。 extern修饰外部变量往往是外部变量进行声明声明该变量是在外部文件中定义的不是变量定 义。 demo01.c demo02.c register 寄存器存储类型只能修饰局部变量用register修饰的局部变量会直接存储到CPU的寄存器中 往往将循环变量设 置为寄存器存储类型。 面试题 static关键字的作用 1. static修饰局部变量延长其生命周期但不影响局部变量的作用域。 2. static修饰全局变量不影响全局变量的生命周期会限制全局变量的作用域仅限本文件内使用 3. static修饰函数此函数就称为内部函数仅限本文件内调用。 static int funa(){..} 值传递与引用传递 值传递发生在整型、浮点型、字符型数据传递传递的是数值也就是内存空间只能被当前变 量独享。 引用传递发生在数组、指针、结构体..数据传递传递的是地址值也就是内存空间可以被多 个变量共享。 内部函数和外部函数 内部函数使用static修饰的函数称作内部函数内部函数只能在当前文件中调用。 外部函数使用extern修饰的函数称作外部函数extern是默认的可以不写也就是说本质上 我们所写的函数都是外部函数建议外部函数在被其他文件调用的时候在其他文件中声明的时 候加上extern关键字。 章节作业 编程题 1. 编写一个函数通过输入球的半径返回球的体积 2. 编写一个函数通过输入一个数字字符返回该数字 3. 编写一个函数输入四个数据分别表示2个点的xy坐标返回两点之间的距离 4. 编写一个函数通过参数输入一个整型数返回该数各位上数字的平方和 5. 编写一个函数通过参数输入x的值计算如下的数学函数值当 x5时 f(x) 4x7;否则 f(x) -2x3,返回结果值 6. 设计一个函数用来求出多个数据的平均值 7. 设计一个函数用来查找一个字符串中某个字符的位置 8. 设计一个函数把一个整型数字转成对应的字符串格式 9. 设计一个函数统计字符串中大写字母的个数 10. 设计函数实现strcmp 的功能 11. 编写函数用于判断输入的字符是不是个数字。是返回1不是返回0. 12. 设计一程序,实现一个简单的计算器。 要求有菜单函数 和加、减、乘、除的函数 主函数调用这些函数实现程序的功能.要求菜单函数能 够输出如下的界面 1、加法 2、减法 3、乘法 4、除法 0.退出 13. 设计函数实现冒泡排序 思考题【选做】 14. 编写一个函数将数组中的数据首尾互换
http://www.w-s-a.com/news/233900/

相关文章:

  • 网站设计与制作是做什么工作免费封面设计在线制作生成
  • 网站开发的教学课程网站广告调词软件
  • 进下加强新闻宣传网站建设入门 做网站 书籍
  • 电商网站主题photolux wordpress
  • 周口专业做网站公司深圳市宝安区松岗街道邮政编码
  • 上海企业网站推广方法网络营销策划方案框架
  • 一流的常州网站建设机械加工网报价
  • 上海响应式网站建设公司seo课程总结
  • vs网站开发教程昆山普立斯特做的有网站
  • 柳州网站seo网站swordpress 输出内容
  • 网站设计制作电话多少网站流量下降
  • 沈阳做网站推广的公司唐山哪家做网站好
  • 国外著名网站建设公司WordPress破解怎样主题修复
  • 网站建设济南云畅网络广州电力建设有限公司网站
  • 查看公司信息的网站思特奇是外包公司吗
  • 制作企业网站的目的啥都能看的浏览器
  • 做网站可以用哪些语言如何进行网站运营与规划
  • 做效果图网站有哪些电子商城网站制作数据库
  • 小刘网站建设wordpress调用php文件上传
  • 建设银行对账网站网络营销广告案例
  • 做网站开票是多少个点的票wordpress扫码提交数据库
  • 织梦网站改版需要怎么做企业网站备案管理系统
  • 大规模网站开发语言宁夏建设职业技术学院网站
  • 寻花问柳专注做一家男人爱的网站北京展台设计制作
  • 中卫网站设计做自己的卡盟网站
  • 广州网站推广自助做网站人家直接百度能搜到的
  • 电子商务网站建设目标及利益分析安徽建设厅网站施
  • 制作网站策划书网站建设公司的性质
  • 哪个网站可以做免费宣传简单的网页设计网站
  • 福州专业网站制作公司金湖建设局网站