栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第七章 函数---C++的编程模块

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第七章 函数---C++的编程模块

7.1 定义函数

  • 可以将函数分成两类,没有返回值的函数和有返回值的函数,有返回值的函数,必须使用返回语句,以编将值返回给调用函数,值本身可以时常量,变量,也可以是表达式,只是其结果的类型必须为typeName类型或者可以被转换为typeName类型,通过函数将返回值复制到指定的CPU寄存器或内存单元中将其返回,随后,调用函数将查看该内存单元
  • 函数原型是一条语句,必须以分号结束,函数原型不要求提供变量名,函数原型的主要功能
    • 编译器正确处理函数返回值
    • 编译器检查使用的参数数目是否正确
    • 编译器检查使用的参数类型是否正确;如果不正确,则转换为正确的类型

7.2 函数参数和按值传递

  • C++通常按值传递参数,这意味着将数值参数传递给函数,而后者将其赋给一个新的变量
  • 【double volume = cube(side); double cube(double x)】被调用时,cube函数将创建一个新的名为x的double变量,并将其初始化为某值,因为cube()使用的是side的副本,而不是原来的数据。用来传递值的变量被称为形参,传递给函数的值被称为实参
  • 在函数调用时,计算机将为局部变量分配内存,在函数结束时,计算机将释放这些变量使用的内存

7.3 函数和数组

  • 在大多数情况下,C++和C语言一样,将数组名是为指针,C++将数组名解释为其第一个元素的地址
  • 传递常规变量时,函数将使用该变量的拷贝,但传递数组时,函数将使用原来的数组,将数组地址作为参数可以节省复制整个数组所需的时间和内存,如果数组很大,使用拷贝的系统开销将非常大,程序不仅需要更多的计算机内存,还需要花费时间来复制大块的数,另一方面,使用原始数据增加了破坏数据的风险
  • 将指针参数声明为指向常量数据的指针有两条理由
    • 这样可以避免由于无意间修改数据而导致的编程错误
    • 使用const使得函数能够处理const和非const实参,否则将只能接受非const数据,如果条件允许,则应将指针形参声明为指向const的指针

7.5 函数和C风格字符串【C风格字符串和常规char数据重要区别:字符串有内置的结束字符,意味着不必将字符串长度作为参数传递给函数,而函数可以使用循环依次检查字符串中的每个字符,直到遇到结尾的空值字符为止】

  • char数组
  • 用引号括起来的字符串常量
  • 被设置为字符串的地址的char指针

7.10 函数指针

  • 函数指针的基础知识

    • 获取函数的地址,如果think()是一个函数,则think就是该函数的地址,要将函数作为参数进行传递,必须传递函数名
    • 声明函数指针,函数指针声明应指定函数的返回类型以及函数的参数列表
      【double pam(int) —> double (*pf)(int)】由于pam是函数,因此(*pf)也是函数,pf就是函数指针, *pf(int)意味着pf()是一个返回指针的函数,而(*pf)(int)意味着pf是一个指向函数的指针
    • 使用指针来调用函数,使用(*pf)时,只需将它看作函数名即可
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965930.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号