[C++学习历程]基础部分 C++中的函数中的值参数、地址参数、引用参数实际例子

时间:2022-03-23 18:06:21

本文地址:http://blog.csdn.net/sushengmiyan/article/details/20406269

作者:sushengmiyan

// sushengmiyanTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
using namespace std; //静态函数练习
void f(int a)
{
while(a--)
{
// n只初始化一次,循环执行一次n会发生变化
static int n = 0;
//x是局部变量,每次函数调用都初始化为0;
int x = 0;
cout<<"n=="<<n++<<" ,x=="<<x++<<"\n";
//如果a = 3 则输出结果应该为
//n==0,x==0
//n==1,x==0
//n==2,x==0
}
} //引用参数例子
void fuc(int m, int& n)
{
//m是值参数,在函数内部操作的是个副本,不会更改调用的数值
m++;
cout<<"m在函数内部被改变了 m="<<m<<"\n";
//n是引用参数,操作的是地址,外部调用的地方也会发生变化
n++;
cout<<"n在函数里也被改变了 n="<<n<<"\n";
} //地址参数
void swap(int *m, int *n)
{
//m和n传入的都是地址
int p = *n;
*n = *m;
*m = p;
//函数实现了参数数值交换
} //地址参数
void swapA(int *m, int n)
{
//m是传入的地址
int i = *m;
*m = n;
n = i;
//外部来说,m会发生变化,n不会变化
} int _tmain(int argc, _TCHAR* argv[])
{
int a = 6;
int b = 3;
cout<<"静态函数练习:\n";
f(3);
cout<<"值参数练习:\n";
cout<<"传入的数值分别是:a = "<<a<<" b="<<b<<"\n";
fuc(a,b);
cout<<"执行函数fuc(int m, int& n)之后:\n";
cout<<"a = "<<a<<"b= "<<b<<"\n"; cout<<"交换之前 a, b 的数值:\n";
cout<<"a=="<<a<<" ,b=="<<b<<"\n";
swap(&a, &b);
cout<<"经过函数swap(&a, &b)之后 \n";
cout<<"a=="<<a<<" ,b=="<<b<<"\n"; cout<<"交换之前 a, b 的数值:\n";
cout<<"a=="<<a<<" ,b=="<<b<<"\n";
swapA(&a, b);
cout<<"经过函数swapA(&a, b)之后 \n";
cout<<"a=="<<a<<" ,b=="<<b<<"\n"; a = a + b;
cout<<"交换之前 a, b 的数值:\n";
cout<<"a=="<<a<<" ,b=="<<b<<"\n";
fuc(a, b);
cout<<"经过函数fuc(int m, int& n)之后 \n";
cout<<"a=="<<a<<" ,b=="<<b<<"\n";
system("pause");
return 0;
}

[C++学习历程]基础部分 C++中的函数中的值参数、地址参数、引用参数实际例子