[C++学习历程]基础部分 C++中的函数学习
来源:互联网 发布:three.js demo下载 编辑:程序博客网 时间:2024/06/07 05:51
本文地址:http://blog.csdn.net/sushengmiyan/article/details/20305815
作者:sushengmiyan
一。静态变量:
局部变量是线程到达定义的地方的时候进行初始化,如果定义在函数中,那么每次函数调用的时候,都会进行初始化,函数的每个调用保留着一个副本,对于静态变量来说,只在第一次调用的时候初始化。通过下面一个例子可以细细体会这个区别:
// sushengmiyanTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;void f(int a){ while(a--) { static int n = 0; int x = 0; cout<<"n=="<<n++<<" ,x=="<<x++<<"\n"; }}int _tmain(int argc, _TCHAR* argv[]){//cout<<"hello world \n";f(3);system("pause");return 0;}
通过运行结果可以看出,n是静态变量,虽然每次调用函数了,但是只是一次初始化,后面执行n++之后,值就是n++的值,再次调用也不会初始化,对于x来说是局部变量,每次调用都会初始化一下,所以每次都是0.
二。参数传递
// sushengmiyanTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;void f(int a){ while(a--) { static int n = 0; int x = 0; cout<<"n=="<<n++<<" ,x=="<<x++<<"\n"; }}void fuc(int m, int& n){m++;n++;}int _tmain(int argc, _TCHAR* argv[]){int a = 3;int b = 3;//cout<<"hello world \n";fuc(a, b);cout<<"a=="<<a<<" ,b=="<<b<<"\n";system("pause");return 0;}
先看这个例子,结果如下:
通过这例子可以看出,经过函数调用,初始化的时候同样是3 ,第一个参数是形式参数,传入之后对其进行操作,只在函数内部发生作用,函数外部,值不会发生变化,对于第二个参数,是传地址的,就是我修改了之后呢,内存中这个值也就发生了变化,再获取的时候就是函数内部操作之后的数值了。
所以输出的是a = 3,b=4.
0 0
- [C++学习历程]基础部分 C++中的函数学习
- [C++学习历程]基础部分 C++中的类型和声明
- c++primer 第五版 函数基础部分 学习笔记
- [C++学习历程]基础部分 C++中的函数中的值参数、地址参数、引用参数实际例子
- 黑马程序员-2 ios学习历程 C语言基础回顾
- 【嵌入式学习历程4】C语言之开篇基础
- c函数声明--基础学习
- 学习历程《C专家编程》
- 【C语言学习】C语言中的函数
- [C++学习历程]基础部分 C++中的指针数组和结构
- c语言基础学习中。。函数
- C++primer学习笔记-----6.1函数基础
- 简述C和C++的学习历程
- 简述C和C++的学习历程
- 简述C和C++的学习历程
- 简述C和C++的学习历程
- 简述C和C++学习历程
- 简述C和C++的学习历程
- java学习脚印:java工具早使用——Maven与Junit
- 软件设计师角色指南-【3】日常工作
- 无间道123
- javascript和jquery动态创建html元素
- C语言实验——最小公倍数和最大公约数
- [C++学习历程]基础部分 C++中的函数学习
- linux makefile学习笔记(4)
- PostgreSQL 数据库维护
- Maximum Depth of Binary Tree
- 西北工业大学计算机 复试 调整矩阵
- xml文件编辑状态自动提示
- Win7下VC++ 6.0打开文件崩溃解决方案
- 为动态生成html元素增加事件处理
- C语言小贴士之数组