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

C++学习笔记函数(一)

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

C++学习笔记函数(一)

实参和形参

形参:函数定义的时的参数—也就是无赋值的变量(作用是说明参数的类型)
实参:调用函数时使用的参数—也就是有赋值的变量(函数实际操作的对象)

实参是形参的数值值,尽管实参与形参存在对于关系,但是并没有规定实参的求值顺序,编译器能以任何可行的顺序对实参求值

局部对象

名字有作用域,对象有生命周期

  • 名字的作用域是程序文本的一部分,名字在其中可见
  • 对象的生命周期是程序执行过程中该对象存在一段时间
局部变量

形参和函数体内部定义的变量

局部静态对象

在程序执行路径第一次经过对象定义语句时初始化,并且直到程序终止才被销毁。

函数声明(也被称为函数原型)

函数只能被定义一次但是可以被声明多次,但是当一个函数永远不会被用到时,只有声明没有定义

分离式编程

允许我们将文件分割到几个文件当中去,每个文件独立编译

如果我们修改了其中一个源文件,那么只需要重新编译那个改动的文件。

参数传递
  • 引用传递:当形参是引用类型时,我们说它对应的实参被引用传递
  • 值传递:当实参的值被拷贝给形参时,形参和实参是两个相互独立的对象,我们说这样的实参被值传递。
  • 指针形参:使用的是值传递,拷贝是指针的值,实参和形参是不同的指针。因为使我们可以间接地访问它所指向地对象,所以通过指针可以修改它所指向地值。
传引用参数
  • 使用引用参数避免拷贝(拷贝大地类类型对象或者对象比较低效)
  • 使用引用参数返回多个值(返回多个参数)

如果函数无需改变引用形参的值,最好将其声明为常量引用。
尽可能使用常量引用。

const 形参和实参

当实参初始化形参的时,会忽略掉顶层const。(传入的实参可以是const 也可以不是),
如果除了形参是否是const类型其他都一样,会导致函数重复定义错误。

void f(const int a)
void f(int a) // 重复定义了f(int)

数组形参
  • 不能拷贝数组
  • 使用数组的时候,会将其转换成指针

void f(const int*)
void f(cosnt int[])
void f(const int[5])
是否会重复定义
上面三个函数是等价的。每个函数的唯一形参都是const int *类型的。

管理数组形参的三种方式
  • 数组本身包含一个结束标记(使用这种方法典型是c风格的字符串)。
  • 传递指向数组首元素和尾后元素的指针。
  • 专门定义一个表示数组大小的形参。

数组引用实参
f(int (&arr)[10])
多维数组
void f(int (*marix)[10])等价于 void f(int marix[][10])

main 函数

int main(int argc,char *argv[]){}

argc:参数的个数
argv:是一个字符指针数组。

含有可变形参函数(使用标准库当中initializer_list)

initializer_list: 如果函数的实参数量未知但是全部实参的类型都相同

省略符形参

为了方便C++访问某些特殊的C代码而设置的,这些代码使用名为varargs的C标准库功能。

  • 只能出现在形参列表的最后一个位置。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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