[C++学习笔记]自定义函数的传值方法
2010-02-04 16:08
791 查看
1. 默认值传递:被传递到函数的知识变量的值,永远不会是变量本身。
运行得不到期望结果。原因: changeVar 函数完全不知道在 main() 函数里还有一个 myNum 变量,甚至连它的名字都不知道。
2. “地址传递”方式把值传递给函数
3. “引用传递”方式向函数传递参数
事先就知道某个函数只能接受一个地址,按照某种套路来编写相关代码以便在调用该函数时不需用特殊的语法。
其中 void changeVar(int &myVar,int newValue) 函数第一个输入参数 myVar 不是一个指针,而是被传递给这个函数的原始变量的一个别名。在 changeVar() 函数里对这个变量进行的任何操作都反映在 chageVar() 函数以外的那个原始变量上,意味着可以在 changeVar() 函数里用以下代码完成相同任务:
#include <iostream> void changeVar(int myVar,int newValue); int main() { int myNum=20; std::cout<<"myNum is "<<myNum<<"/n"; changeVar(&myNum,90); std::cout<<"The number now is "<<myNum<<"/n"; return 0; } void changeVar(int myVar,int newValue) { myVar = newValue; }
运行得不到期望结果。原因: changeVar 函数完全不知道在 main() 函数里还有一个 myNum 变量,甚至连它的名字都不知道。
2. “地址传递”方式把值传递给函数
#include <iostream> void changeVar(int *myVar,int newValue); int main() { int myNum=20; std::cout<<"myNum is "<<myNum<<"/n"; changeVar(&myNum,90); std::cout<<"The number now is "<<myNum<<"/n"; return 0; } void changeVar(int *myVar,int newValue) { *myVar = newValue; }
3. “引用传递”方式向函数传递参数
事先就知道某个函数只能接受一个地址,按照某种套路来编写相关代码以便在调用该函数时不需用特殊的语法。
#include <iostream> void changeVar(int &myVar,int newValue); int main() { int myNum=20; std::cout<<"myNum is "<<myNum<<"/n"; changeVar(myNum,90); std::cout<<"The number now is "<<myNum<<"/n"; return 0; } void changeVar(int &myVar,int newValue) { myVar = newValue; }
其中 void changeVar(int &myVar,int newValue) 函数第一个输入参数 myVar 不是一个指针,而是被传递给这个函数的原始变量的一个别名。在 changeVar() 函数里对这个变量进行的任何操作都反映在 chageVar() 函数以外的那个原始变量上,意味着可以在 changeVar() 函数里用以下代码完成相同任务:
void changeVar(int &myVar,int newValue) { myVar = newValue; }
相关文章推荐
- C++学习笔记之:虚函数之虚表地址打印方法
- c++学习笔记之基础---类内声明函数后在类外定义的一种方法
- C# 函数方法大全+学习笔记
- C++ Primer Plus 学习笔记之函数探幽----1
- GeekBand学习笔记:C++三大函数:拷贝构造、拷贝赋值、析构函数
- C++学习笔记(八):对字符的操作函数和范围for语句的使用
- 【从C到C++学习笔记】域运算符/new/delete运算符/重载/Name managling/extern "C"/带函数默认值参数
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- c++学习笔记 内存四区 函数调用模型 指针强化
- c++学习笔记 -- 函数模板与类模板的综合运用
- C++面向对象—成员函数与成员变量的实现机制学习笔记(1)
- C++学习笔记(3)——成员变量、成员函数的指针
- C++学习笔记(四)函数重载
- C++学习笔记 - main()函数及其参数
- 【C++学习笔记】函数返回和函数重载
- C++学习笔记(第四章 函数的应用 递归函数 之四)
- C++学习笔记二之4种访问名称空间std的方法
- MongoDB 学习笔记——(6)MongoDB 方法&函数
- C++学习笔记之函数指针
- 【C++】【学习笔记】【019】覆盖方法和重载方法