[C++学习历程]基础部分 C++中的函数中的值参数、地址参数、引用参数实际例子
本文地址: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++中的函数中的值参数、地址参数、引用参数实际例子的更多相关文章
- 软件测试中LoadRunner函数中的几个陷阱
软件测试 中 LoadRunner 函数中的几个陷阱 1.atof 在 loadrunner 中如果直接用 float f; f=atof("123.00"); lr _outpu ...
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...
- [C++学习历程]基础部分 C++中的函数学习
本文地址:http://blog.csdn.net/sushengmiyan/article/details/20305815 作者:sushengmiyan 一.静态变量: 局部变量是线程到达定义的 ...
- linux中probe函数中传递的参数来源(上)
点击打开链接 上一篇中,我们追踪了probe函数在何时调用,知道了满足什么条件会调用probe函数,但probe函数中传递的参数我们并不知道在何时定义,到底是谁定义的,反正不是我们在驱动中定义的(当然 ...
- js中在一个函数中引用另一个函数中的函数,可以这么做
在另一个函数中,将需要使用的函数绑定在window下 // UEditor $(function () { window.ue = UE.getEditor('editor', { // ue即可成为 ...
- Unix系统中system函数的返回值
网上关于system函数的返回值说明很多很详细但却不直观,这里搬出apue 3rd Editon中实现system函数的代码来说明其返回值. #include <sys/wait.h> # ...
- 『Python基础』第39节 函数的返回值
1. 函数的返回值 一个函数就是封装一个功能, 这个功能一般都会有一个最终结果的. 比如写一个登录的函数, 最终登录是否成功你总得告诉我一声吧? 还有咱们之前也用过 len() 这个函数, ...
- python中给函数传参是传值还是传引用
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
- C++中main函数的返回值一定要是int
因为大学上课时候,经常是在主函数中做处理,直接用cout语句输出到显示设备,所以一直在用void main(). 直到后面具体编程的时候,才发现void main()这种用法是按 C89(C语言的早期 ...
- [C++学习历程]基础部分 C++中的指针数组和结构
作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/19938177 一.指针 对学习C++来说,指针是一项重要内容,以前,教 ...
随机推荐
- Postgresql合并年月日、月份和日期左侧补零
在写一个统计查询的 SQL 语句时,需要根据年.月.日分组,但要求返回的字段是日期格式:yyyy年MM月dd日.刚开始我的做法是返回年.月.日,然后再手动拼接年月日,而且还要判断月份和日期是否为个位数 ...
- 07_Linux目录文件操作命令4解压缩,文件查找_我的Linux之路
这一节还是一样学习操作目录文件的命令 在这一节,我会讲到解压压缩tar以及zip命令,以及文本查找命令grep tar 打包压缩命令 tar命令可以为linux的文件和目录创建档案 首先要弄清两个概念 ...
- 了解ASCII、gb系列、Unicode、UTF-8的区别
转自:http://www.douban.com/note/334994123/?type=rec ● 为什么有这么多编码? ● UTF-8和GB2312有什么区别? ● 我们在国内做网站是用UTF- ...
- npm下载包很慢和node-sass编译错误的解决办法
最近研究一个ionic cordova angular2的前端项目 发现npm install下载包非常慢的问题 最近整理了一些解决这些问题的方法. 1.通过config命令修改https为http ...
- 阻止Enter键回发到服务端Asp.net
//阻止enter键回发到服务端$(function () { $("input[type=text]").each(function () { $(this) ...
- 深入理解null的原理
--null的原理 --oracle一直将null和空字符串''<长度为0>同等对待<如'' is null是true,''=null为false,如果声明a varchar2:=' ...
- Python中什么是变量Python中定义字符串
在Python中,变量的概念基本上和初中代数的方程变量是一致的. 例如,对于方程式 y=x*x ,x就是变量.当x=2时,计算结果是,当x=5时,计算结果是25. 只是在计算机程序中,变量不仅可以是数 ...
- 阿里云linux下web服务器配置
markdown截图不方便,本教程不用markdown编写 首先参考文章 https://www.jianshu.com/p/2604e53a7f6a?from=singlemessage 安装完后无 ...
- Node.js 模块
稳定性: 5 - 锁定 Node 有简单的模块加载系统.在 Node 里,文件和模块是一一对应的.下面例子里,foo.js 加载同一个文件夹里的 circle.js 模块. foo.js 内容: va ...
- 什么是 Docker
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 ...