您的位置:首页 > 编程语言 > C语言/C++

[C++学习笔记]自定义函数的传值方法

2010-02-04 16:08 791 查看
1. 默认值传递:被传递到函数的知识变量的值,永远不会是变量本身。
#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++ 任务