按值传递&&按引用传递&&按地址传递
来源:互联网 发布:mac电脑u盘无法显示 编辑:程序博客网 时间:2024/06/10 09:22
按值传递:不改变外部对象
按引用传递&&按地址传递:允许改变外部对象
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
//passing by refedrence
void f(int &r)
{
cout << "r = " << r << endl;
cout << "&r = " << &r << endl;
r = 5 ;
cout << "r = " << r << endl;
}
//passing by value
void f(int a)
{
cout<<"a= "<<a<<endl;
a = 5;
cout << "a= " << a <<endl;
}
//passing by address
void f(int *p)
{
cout << "p = " << p << endl;
cout << "*p = " << *p << endl;
*p = 5;
cout << "p = " << p << endl;
}
int main()
{
//passing by reference
int x = 47 ;
cout << "x = " << x <<endl;
cout << "&x = " << &x << endl;
f(x);//Looks like pass-by-value
//is actually pass by reference
cout << "x = " << x << endl;
//output
x = 47
&x = 0x7FFF1D5C9B4C
r = 47
&r = 0x7FFF1D5C9B4C
r = 5
x = 5
//passing by address
int x = 47;
cout << "x = " << x << endl;
cout << "&x = " << &x << endl;
f(&x);
cout << "x = " << x << endl;
//output
////////////////////////////////
x = 47
&x = 0x7FFF9746423c
p = 0x7FFF9746423c
*p = 47
p = 0x7FFF9746423c
x = 5
//passing by value
int x = 97 ;
cout << "x=" << x <<endl;
f(x);
cout << "x=" << x <<endl;
//output
///////////////////////////////
x = 47
a = 47
a = 5
x = 47
}
- 按值传递&&按引用传递&&按地址传递
- C 值传递、地址传递、引用传递
- 值传递,地址传递,引用传递
- c++值传递、地址传递、引用传递
- 值传递、地址传递,引用传递
- 值传递,地址传递和引用传递
- 值传递,地址传递,引用传递
- 值传递、引用传递、地址传递辨析
- 值传递,地址传递与引用传递
- 按值传递还是按引用传递
- 按值传递还是按引用传递
- 按值传递和按引用传递
- 按值传递还是按引用传递
- 按值传递和引用传递
- Java 按值传递 还是 引用传递
- Java按值传递和引用传递
- java按值传递or引用传递?
- arraylist按引用传递和值传递
- 【C#属性理解】--与SQL交互用到的 【DataSet】相关
- 式 s(n)=1*1+2*2+,,,,.,n*n 用c语言编程的程序
- The Usage of Java Timer
- 程序员的十层楼
- 1
- 按值传递&&按引用传递&&按地址传递
- 给盲目兴奋的程序员们的建议
- apache错误处理
- Designing with Web Standards 3rd
- 程序员能力矩阵 你属于哪一层?
- 李开复成长中的十个启发
- HP大中华区总裁孙振耀退休感言
- 女孩的十个优点
- CEGUI Lua脚本入门