函数是C++的编程模块。要使用函数,必须提供定义和原型,并调用该函数。函数定义是实现函数功能的代码;函数原型描述了函数的接口:传递给函数的值的书目和种类以及函数的返回类型。函数调用使得程序将参数传递给函数,并执行函数的代码。
在默认情况下,C++函数按值传递参数。这意味着函数定义中的形参是新的变量,它们被初始化为函数调用所提供的值。因此,C++函数通过使用拷贝,保护了原始数据的完整性。
C++将数组名参数视为数组第一个元素的地址。从技术上讲,这仍然是按值传递的,因为指针是原始地址的拷贝,但函数将使用指针来访问原始数组的内容。当且仅当声明函数的形参时,下面两个声明才是等价的:
typeName arr[];
typeName * arr;
这两个声明都表明,arr是指向typeName的指针,单在编写函数代码时,可以像使用数组名那样使用arr来访问元素:arr[i]。即使在传递指针时,也可以将形参声明为const指针,来保护原始数据的完整性。由于传递数据的地址时,并不会传输有关数组长度的信息,因此通常将数组长度作为独立的参数来传递。另外,也可传递两个指针(其中一个指向数组开头,另一个指向数组末尾的下一个元素),以指定一个范围,就像STL使用的算法一样。(x.begin()和x.end())
C++提供了3种表示C-风格字符串的方法:字符数组、字符串常量和字符串指针。他们的类型都是char*(char指针),因此被作为char*类型参数传递给函数。C++使用空值字符(\0)来结束字符串,因此字符串函数检测空值字符串来确定字符串的结尾。
C++还提供了string类,用于表示字符串。函数可以接受string对象作为参数以及将string对象作为返回值。string类的方法size()可用于判断其存储的字符串的长度。
C++处理结构的方式与基本类型完全相同,这意味着可以按值传递结构,并将其用作函数返回类型。然而,如果结构非常大,则传递结构指针的效率将更高,同时函数能够使用原始数据。这些考虑因素也适用于类对象。
C++函数可以使递归的,也就是说,函数代码中可以包括对函数本身的调用。
C++函数名与函数地址的作用相同。通过将函数指针作为参数,可以传递要调用的函数的名称。

最新文章

  1. WebForm(二)——控件和数据库连接方式
  2. windows下安装并配置mysql
  3. linux 安装配置Nginx
  4. MVC执行过程
  5. usb驱动开发15之设备生命线
  6. 我的WPF控件库——KAN.WPF.XCtrl(141105)
  7. android:layout_weight越大所占比例越大和越大所占比例越小的两个例子
  8. 例行性工作排程 (crontab)
  9. JAVA—枚举(Enum)学习总结
  10. node-express-2-jade
  11. 使用二分查找判断某个数在某个区间中--如何判断某个IP地址所属的地区
  12. android TextView SetText卡顿原因
  13. 如何整合Office Web Apps至自己开发的系统(一)
  14. 总是容易忘记:enum、int、string之间的快速转换
  15. win10专业版激活方法
  16. Go第七篇之规范的接口
  17. 从Exchager数据交换到基于trade-off的系统设计
  18. 异步消息框架netty
  19. SQL Developer 警告--无法安装某些模块
  20. Linux下安装Nginx并实现socket代理

热门文章

  1. iOS文件和目录操作,iOS文件操作,NSFileManager使用文件操作:
  2. C语言 · 芯片测试
  3. 常用sqoop操作
  4. [LintCode]计算两个数的交集(二)
  5. 深入理解MongoDB的复合索引
  6. 400错误,Required String parameter 'paramter' is not present
  7. python print 不换行
  8. e686. 显示打印窗口
  9. 【转载】C#基础系列——小话泛型
  10. 转载:Erlang 函数(Efficiency Guide)