本文地址: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++中的函数中的值参数、地址参数、引用参数实际例子的更多相关文章

  1. 软件测试中LoadRunner函数中的几个陷阱

    软件测试 中 LoadRunner 函数中的几个陷阱 1.atof 在 loadrunner 中如果直接用 float f; f=atof("123.00"); lr _outpu ...

  2. eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?

    eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...

  3. [C++学习历程]基础部分 C++中的函数学习

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/20305815 作者:sushengmiyan 一.静态变量: 局部变量是线程到达定义的 ...

  4. linux中probe函数中传递的参数来源(上)

    点击打开链接 上一篇中,我们追踪了probe函数在何时调用,知道了满足什么条件会调用probe函数,但probe函数中传递的参数我们并不知道在何时定义,到底是谁定义的,反正不是我们在驱动中定义的(当然 ...

  5. js中在一个函数中引用另一个函数中的函数,可以这么做

    在另一个函数中,将需要使用的函数绑定在window下 // UEditor $(function () { window.ue = UE.getEditor('editor', { // ue即可成为 ...

  6. Unix系统中system函数的返回值

    网上关于system函数的返回值说明很多很详细但却不直观,这里搬出apue 3rd Editon中实现system函数的代码来说明其返回值. #include <sys/wait.h> # ...

  7. 『Python基础』第39节 函数的返回值

    1. 函数的返回值 ​ 一个函数就是封装一个功能, 这个功能一般都会有一个最终结果的. ​ 比如写一个登录的函数, 最终登录是否成功你总得告诉我一声吧? ​ 还有咱们之前也用过 len() 这个函数, ...

  8. python中给函数传参是传值还是传引用

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

  9. C++中main函数的返回值一定要是int

    因为大学上课时候,经常是在主函数中做处理,直接用cout语句输出到显示设备,所以一直在用void main(). 直到后面具体编程的时候,才发现void main()这种用法是按 C89(C语言的早期 ...

  10. [C++学习历程]基础部分 C++中的指针数组和结构

    作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/19938177 一.指针 对学习C++来说,指针是一项重要内容,以前,教 ...

随机推荐

  1. IE10以下兼容H5中的placeholder 以及改变它默认颜色

    placeholder是H5<input>的属性之一,可惜在IE10以下不支持,万恶的IE!不过正因为有IE,才多了很多捣鼓,添了乐趣.不支持就不支持呗,自己动手丰衣足食,我们可以用js模 ...

  2. react 或 vue 中引用 jQuery 插件

    前言 今天与遇到一个令人抓狂的事情, 因为项目中有个交互太过于复杂而且冷门, 没有人封装类似react-swiper那种的移植过来的插件 只有现成的jQuery插件. 而时间并不宽裕,自己重写成rea ...

  3. c++ 文件操作详解

    C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ...

  4. Laravel-admin 使用Layer相册功能

    使用Laravel-admin后台,Laravel-admin已经集成了很多前端组件,但是在手册中也没有发现能够展示相册的插件,而本人比较喜欢Layer弹窗的插件所以想使用Layer来进行效果展示 通 ...

  5. 如何搭建samba服务?

    为了日后便于查询,本文所涉及到的所有命令集合如下: chkconfig iptables off #关闭防火墙命令 在Centos7中使用的是chkconfig firewalld off seten ...

  6. tomcat连接池配置和使用

    一种方法是在conf/context.xml文件中配置,配置oracle连接池的一个例子的context内容如下: <?xml version='1.0' encoding='utf-8'?&g ...

  7. LintCode题解之斐波纳契数列

    直接使用递归的方法会导致TLE,加个缓存就好了: public class Solution { private Integer[] buff = new Integer[1000]; /* * @p ...

  8. CodeForces - 766B Mahmoud and a Triangle

    [题意概述] 给定一串数,从中挑三个,判断能否组成一个有正面积的三角形,如果能就输出YES,否则就输出NO [题目分析] 将 n 个数从大到小进行排列,三个三个往下去判断,只要后两个的和比第一个大的时 ...

  9. MySQL NULL 值处理

    MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了 ...

  10. 记一次MySQL删库的数据恢复

    昨天因为不可描述的原因,数据库直接被 drop database删除.在第一时间停止数据库服务和Web服务,备份MySQL数据目录下的所有文件之后,开始走上数据恢复之路. 第一次干这种事,各种不得法. ...