[C++学习历程]基础部分 C++中的函数学习
本文地址: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++中的函数学习相关推荐
- 强化学习(六) - 连续空间中的强化学习(RL in Continuous Spaces)及相关实例
强化学习(六) - 连续空间中的强化学习 6.1 连续空间中的强化学习 6.2 离散空间和连续空间 6.3 离散化 实例:小车上山 6.3.1 相关程序 6.3.2 程序注解 (1) 环境测试 (2) ...
- 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]
关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 0.1图计算基本概念 首先看到百度百科定义: 图计算(Graph Processin ...
- A.关于图计算图学习的基础知识概览:前置知识点学习(Paddle Graph L)【一】
图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...
- SKlearn中的函数学习总结(持续更新)
关于SKlearn中的函数学习及关键代码部分,会持续更新 (参考sklearn官方文档) 一:分类.回归 二:降维 三:模型评估与选择 四:数据预处理 五:模型保存 大类 小类 适用问题 实现文档 说 ...
- 机器学习实战中的函数学习记录
title: 机器学习实战中的函数学习记录 date: 2020-05-01 09:20:50 tags: [python函数] categories: 机器学习实战 更多内容请关注我的博客 记录机器 ...
- 学习计算机基础知识论文,中小学生应注重学习计算机的基础知识_信息技术论文.doc...
中小学生应注重学习计算机的基础知识_信息技术论文_范文先生网 "知识爆炸"和"知识老化"这两大问题,不断困扰着现代教育,人们解决这一问题的良方之一,就是加强学生 ...
- Python零基础入门(三)——函数[学习笔记]
目录: 一.函数: 1.内置函数 2.定义函数 二.函数参数: 1.必选参数 2.默认参数 3.可变参数/任意参数 4.关键字参数 三.return语句 四.函数封装 1.导入整个模块 2.导入特定的 ...
- slam 基础之机器人学中的坐标转换学习总结
常用的坐标系是右手系,ros中也是如下图: 坐标变换: 习惯上,我们表示一个物体的三维位置和朝向时,都会在其身上附一个随动的坐标系.所以描述一个物体在坐标系中的位置和朝向,总是可以等效为描述物体自身坐 ...
- JAVA学习历程/基础篇/第二天
常量 常量是程序在运行过程当中值不会改变的量.整数常量(所有整数).小数常量(所有小数).布尔常量(true和false).字符常量(单子字符如'a').字符串常量(字符序列如"abcd&q ...
最新文章
- Java微信公众平台开发(十)--微信自定义菜单的创建实现
- flux读取不到数据_spring-webflux两种开发模式,获取不到使用ajax的post提交的数据?...
- jQuery validate 如何清除remote验证的缓存 (在select验证时这个bug尤为明显)
- Redis03_基础命令操作
- C语言高级编程:i++ 或 ++i作为函数参数
- sql server中创建数据库和表的语法
- 【渝粤教育】电大中专学前儿童科学教育 (5)作业 题库
- Android方法的概括,android中的Filter接口简介
- php可逆加密函数,简洁的PHP可逆加密函数
- java service 初始化_【Java】Nacos – NacosNamingService初始化
- python websocket库有什么_常用Python爬虫与Web开发库有哪些?
- 循环神经网络(RNN)和LSTM初学者指南 | 入门资料
- python实现xgboost算法
- 重复可记,证明没有忘记这回事
- 知其然,知其所以然——ArrayList.add()详解
- 分数化简通分:最大公约数与最小公倍数
- arcgis 图层概念
- 正确开展Scrum评审会议
- 关于接口测试--面试题
- 很多人投身到元宇宙的怀抱,仅仅只是看到了元宇宙的热度
热门文章
- python语言程序设计实践教程答案实验六_Python程序设计实践教程
- java类只读怎么办_如何在Java中制作一个只读类?
- ruby hash方法_Ruby中带有示例的Hash.length方法
- 简单的登录系统(java+JFrame+Mysql)
- 利用xor给shellcode加壳
- java中的局部变量、成员变量、类变量
- 【Web开发】级联查询(Ajax/ jQuery/ Servlet)
- 网络之DNS协议图解
- C++ 菱形虚继承 通过指针来寻找继承过来的成员变量
- xpath 简单用法小记