C++ 之 函数 相关知识点

一、函数参数传递机制

1.值传递

Ø  调用函数时,实参表达式的值被复制到相应形参标识的对象,并按形参类型强制转换                

Ø  函数内对形参的访问、修改,都在形参的标识对象进行

Ø  函数返回时,形参对象被撤消,不影响实参的值

Ø  值传送的实参可以是常量、有确定值的变量或表达式

Ø  函数返回值通过匿名对象传递

Ø C++没有规定在函数调用时实际参数的求值顺序(这里指参数是压栈顺序)

Ø 若实际参数表达式之间有求值关联,同一个程序在不同编译器可能    产生不同的运行结果

1.1默认参数

Ø C++允许指定传值参数的默认值。当函数调用中省略默认参数时,默认值自动传递给被调用函数

Ø 默认参数在函数原型定义

Ø 默认参数放在一般参数之后(最后)

 

2.指针传递

Ø  形参指针对应的实际参数是地址表达式,即对象的指针

Ø  实际参数把对象的地址值赋给形式参数名标识的指针变量

Ø  被调用函数通过形参指针间接访问实参所指对象

Ø  使用 const限 定指针 可以保护实参对象 

     const int *p    // 不能修改常对象                int const *p     // 不能修改常指针

 

3.引用参数

Ø  引用参数是实参的别名

Ø  只有常引用对应的实参可以是常量或表达式;  非约束的引用参数对应的实参必须是对象名

 

二、函数返回类型

Ø  函数通过匿名对象返回结果值

Ø  函数值的类型是匿名对象的类型

Ø  return 语句把表达式的值赋给匿名对象

Ø  不应该返回局部量的指针 以及 引用

Ø  C++函数返回对象引用时,不产生返回实际对象时的副本,返回时的匿名对象是实际返回对象的引用

 

三、函数指针

Ø函数、应用程序是编译器处理的对象

Ø 每一个函数模块都有一个首地址,称为函数的入口地址,    (函数指针)

Ø 函数调用:找到函数入口地址;传递参数

Ø 不带括号的函数名就是函数入口地址

 

 

 

资料参考 《C++程序设计》 周霭如

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值