本文地址: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.

转载于:https://www.cnblogs.com/muyuge/p/6152529.html

[C++学习历程]基础部分 C++中的函数学习相关推荐

  1. 强化学习(六) - 连续空间中的强化学习(RL in Continuous Spaces)及相关实例

    强化学习(六) - 连续空间中的强化学习 6.1 连续空间中的强化学习 6.2 离散空间和连续空间 6.3 离散化 实例:小车上山 6.3.1 相关程序 6.3.2 程序注解 (1) 环境测试 (2) ...

  2. 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 0.1图计算基本概念 首先看到百度百科定义: 图计算(Graph Processin ...

  3. A.关于图计算图学习的基础知识概览:前置知识点学习(Paddle Graph L)【一】

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  4. SKlearn中的函数学习总结(持续更新)

    关于SKlearn中的函数学习及关键代码部分,会持续更新 (参考sklearn官方文档) 一:分类.回归 二:降维 三:模型评估与选择 四:数据预处理 五:模型保存 大类 小类 适用问题 实现文档 说 ...

  5. 机器学习实战中的函数学习记录

    title: 机器学习实战中的函数学习记录 date: 2020-05-01 09:20:50 tags: [python函数] categories: 机器学习实战 更多内容请关注我的博客 记录机器 ...

  6. 学习计算机基础知识论文,中小学生应注重学习计算机的基础知识_信息技术论文.doc...

    中小学生应注重学习计算机的基础知识_信息技术论文_范文先生网 "知识爆炸"和"知识老化"这两大问题,不断困扰着现代教育,人们解决这一问题的良方之一,就是加强学生 ...

  7. Python零基础入门(三)——函数[学习笔记]

    目录: 一.函数: 1.内置函数 2.定义函数 二.函数参数: 1.必选参数 2.默认参数 3.可变参数/任意参数 4.关键字参数 三.return语句 四.函数封装 1.导入整个模块 2.导入特定的 ...

  8. slam 基础之机器人学中的坐标转换学习总结

    常用的坐标系是右手系,ros中也是如下图: 坐标变换: 习惯上,我们表示一个物体的三维位置和朝向时,都会在其身上附一个随动的坐标系.所以描述一个物体在坐标系中的位置和朝向,总是可以等效为描述物体自身坐 ...

  9. JAVA学习历程/基础篇/第二天

    常量 常量是程序在运行过程当中值不会改变的量.整数常量(所有整数).小数常量(所有小数).布尔常量(true和false).字符常量(单子字符如'a').字符串常量(字符序列如"abcd&q ...

最新文章

  1. Java微信公众平台开发(十)--微信自定义菜单的创建实现
  2. flux读取不到数据_spring-webflux两种开发模式,获取不到使用ajax的post提交的数据?...
  3. jQuery validate 如何清除remote验证的缓存 (在select验证时这个bug尤为明显)
  4. Redis03_基础命令操作
  5. C语言高级编程:i++ 或 ++i作为函数参数
  6. sql server中创建数据库和表的语法
  7. 【渝粤教育】电大中专学前儿童科学教育 (5)作业 题库
  8. Android方法的概括,android中的Filter接口简介
  9. php可逆加密函数,简洁的PHP可逆加密函数
  10. java service 初始化_【Java】Nacos – NacosNamingService初始化
  11. python websocket库有什么_常用Python爬虫与Web开发库有哪些?
  12. 循环神经网络(RNN)和LSTM初学者指南 | 入门资料
  13. python实现xgboost算法
  14. 重复可记,证明没有忘记这回事
  15. 知其然,知其所以然——ArrayList.add()详解
  16. 分数化简通分:最大公约数与最小公倍数
  17. arcgis 图层概念
  18. 正确开展Scrum评审会议
  19. 关于接口测试--面试题
  20. 很多人投身到元宇宙的怀抱,仅仅只是看到了元宇宙的热度

热门文章

  1. python语言程序设计实践教程答案实验六_Python程序设计实践教程
  2. java类只读怎么办_如何在Java中制作一个只读类?
  3. ruby hash方法_Ruby中带有示例的Hash.length方法
  4. 简单的登录系统(java+JFrame+Mysql)
  5. 利用xor给shellcode加壳
  6. java中的局部变量、成员变量、类变量
  7. 【Web开发】级联查询(Ajax/ jQuery/ Servlet)
  8. 网络之DNS协议图解
  9. C++ 菱形虚继承 通过指针来寻找继承过来的成员变量
  10. xpath 简单用法小记