-
2022-03-03 11:09:04
一.全局变量
在所有函数外部定义的变量(通常在函数头部),称为全局变量。其可以被任何函数访问,通俗的说全局变量一旦声明,那么在整个程序中是可以调用的。并且全局变量的值在程序的整个生命周期都是有效的。
#include<iostream>
using namespace std;
int num; // 全局变量 num
int main()
{
//对变量初始化
int a = 10;
int b = 8;
int num = a + b;
cout<<" num = "<< num << endl;
system("pause"); // 按任意键返回
return 0;
}
更多相关内容 -
什么是静态变量 举例 C语言入门
2020-08-11 22:33:29目录相关描述代码举例其他 相关描述 局部变量:定义在函数内部的变量(函数的形参也是局部变量),只能在定义它的函数内部使用 全局变量:定义在函数外面的变量,所有函数都可以使用 静态变量:有全局变量、前面加了...欢迎关注笔者,你的支持是持续更博的最大动力
相关描述
局部变量:定义在函数内部的变量(函数的形参也是局部变量),只能在定义它的函数内部使用
全局变量:定义在函数外面的变量,所有函数都可以使用
静态变量:有全局变量、前面加了“static”关键字的局部变量区别:
- 静态变量的存放地址,在整个程序运行期间,都是固定不变的。
- 非静态变量(一定是局部变量)地址每次函数调用时都可能不同,只在函数的一次执行期间不变
如果没明确初始化,则静态变量会被自动初始化成全0(每个bit都是0),局部非静态变量的值则随机
代码举例
下面是两段代码,除了第2段多了“static”关键字,其他内容一模一样,但输出结果却不同。
非静态变量
void Func(){ int n = 4; //初始化语句 将非静态局部变量n初始化为4,且每次执行Func函数都会运行这一行 cout << n << endl; //输出4 ++n; } int main(){ Func(); Func(); Func(); //在主函数中调用Func函数三次 }
这段代码将输出:
4
4
4
因为每次调用Fun函数,都执行了初始化语句,使得 n = 4, 不论 ++n执行多少次,下次调用函数时,还是会先初始化n。调用次数 过程 输出 调用结束时n的值 第1次 初始化 n = 4,输出n,++n 4 5 第2次 初始化 n = 4,输出n,++n 4 5 第3次 初始化 n = 4,输出n,++n 4 5
静态变量
void Func(){ static int n = 4; //初始化语句,有static关键字 将静态局部变量n初始化为4,只在函数第一次被执行的时候执行,静态变量地址固定 cout << n << endl; //输出当前n的值,不一定是4 ++n; } int main(){ Func(); Func(); Func(); //在主函数中调用Func函数三次 }
这段代码将输出:
4
5
6
因为只有第1次调用Func函数时,才执行初始化语句,使得 n = 4,下次执行的时候,不会再执行初始化语句了。所以,第2次、第3次调用Fun函数时,n没有初始化,n的值是上一次调用函数后n的值。调用次数 过程 输出 调用结束时n的值 第1次 初始化 n = 4,输出n,++n 4 5 第2次 n = 5,输出n,++n 5 6 第3次 n = 6,输出n,++n 6 7 从上面两段代码,可看出静态变量和非静态变量的区别。
相关阅读
其他
日常vlog: 点这里去B站~
-
以Python为例对变量类型及运算符进行举例
2020-12-21 04:42:51变量的定义: 在 python 中,每个变量在使用前都必须赋值 eg:变量名=储存在变量中的值 变量定义完成后,接下来就是使用变量,为变量赋值。 注:在Python中不需要注明变量是什么类型,在python运行的时候它会自动判别是... -
VB 静态变量举例
2010-06-07 14:53:38VB 静态变量举例 VB 静态变量举例 VB 静态变量举例 -
VB 全局变量举例
2010-06-07 14:59:00VB 全局变量举例 VB 全局变量举例 VB 全局变量举例 -
VB 局部变量举例
2010-06-07 14:54:22VB 局部变量举例 VB 局部变量举例 VB 局部变量举例 -
VB 动态变量举例
2010-06-07 14:49:49VB 动态变量举例 VB 动态变量举例 VB 动态变量举例 -
VB 模块级变量举例
2010-06-07 14:57:53VB 模块级变量举例 VB 模块级变量举例 VB 模块级变量举例 -
C语言程序设计 变量 变量.ppt
2020-09-10 07:26:35LOGO C程序构成要素变量 主讲人康健 教学目标 掌握变量的三要素 ...变量的名 一变量的定义 定义变量的一般形式如下 int float char 1字节 举例int a,b,c,d 数据类型 变量名1变量名2变量名n 二变量的命名原则 变量名又 -
bv课件 静态变量举例
2009-10-31 15:52:25静态变量举例 这一部分介绍代码编写机制,包括如何中断和合并代码行、如何添加注释、如何使用数字以及 Visual Basic 命名约定。 将单行语句分成多行 -
【文末有福利】连续型随机变量及实例详解
2021-02-03 20:20:00如果随机变量X的所有可能取值不可以逐个列举出来,而是取数轴上某一区间内的任意点,那么称之为连续型随机变量。例如,一批电子元件的寿命、实际中常遇到的测量误差等都是连续型随机变量。>&g...如果随机变量X的所有可能取值不可以逐个列举出来,而是取数轴上某一区间内的任意点,那么称之为连续型随机变量。例如,一批电子元件的寿命、实际中常遇到的测量误差等都是连续型随机变量。
>>>>
连续型随机变量X无法像离散型随机变量一样,给出其取每一个点时的概率,那么换一种思路,来研究随机变量落入一个区间 的概率 ,当区间 接近无穷小时,这时我们使用概率密度来表示概率值。什么是概率密度?
假设有一组零件,由于各种因素的影响,其长度是各不相同的。具体数值如下。
[171.671,172.04,171.67,172.40,172.70,172.164,171.71,172.68,172.13,171.97,172.266,171.81,172.15,172.45,172.20,172.600,172.24,171.39,172.17,171.2]
按前面离散型随机变量的思路,要将数据分组,对应每个组计算出其相应的概率值,并绘制概率分布直方图,如下图所示。
连续型随机变量分组后的概率分布直方图
图中的横坐标是随机变量值,纵坐标是随机变量落入该值范围内的概率。直方图的边缘看起来有点粗糙,但当我们把样本数据和分组数同时增加时,轮廓就会越来越细致,接近于如图所示的曲线,这条曲线对应的函数就称为概率密度函数。由此思路,得到概率密度的数学描述如下。
考虑连续随机变量 落入区间区间 的概率,由概率分布函数 的定义可知 ,令 ,则设
如果该极限存在,则称 为在 点处的概率密度。
概率密度 反映出概率在 点处的密集程度,可以设想一根的质量不均匀的金属杆,总质量为1,概率密度相当于杆上各点处的质量密度。
根据导数的定义可知:
从上式中可得结论:若 在处连续,则概率密度函数 是分布函数 的导函数。
设 为连续型随机变量, 在任意区间(a,b]上的概率可以表示为:
其中 就叫作X的概率密度函数。
下图形象描绘出概率密度函数 和概率 之间的关系。概率 被看成曲线下的面积,用数学公式描述就是一个积分形式。
概率密度函数和概率P
连续型随机变量X的分布函数,也可写成:
概率密度函数和分布函数具有以下性质。
(1)非负函数: 。
(2)规范性: 。
(3)对于任何常数a<b,有:
假设某零件误差量在区间(-4,4)均匀分布,计算误差量为1~3的概率。
解:设随机抽取一个零件的误差量为X,随机变量X在区间(-4,4)上均匀分布,X落在该区间任意点的概率相同,即概率密度为一常量。
设 , ,即
可得:概率密度函数
在区间[1,3]之间的概率 。
下图中显示均匀分布对应的概率密度函数和分布函数。
均匀分布对应的概率密度函数和分布函数
在Python中输出正态分布概率密度函数和对应的概率分布函数。
解:如果一个随机变量X具有概率密度函数
则称随机变量X为正态分布随机变量,并记为 。
下面代码模拟实现了一个均值 为0和方差σ2为1的正态分布。
【代码如下】
import numpy as np import matplotlib.pyplot as plt import scipy.stats as stats def test_norm_pmf(): # 正态分布是一种连续分布,其函数可以在实线上的任何地方取值 # 正态分布由两个参数描述:分布的平均值μ和方差σ2 mu = 0 # mean sigma = 1#standard deviation x = np.arange(-5,5,0.1) #生成随机数x #得到对应的概率值y y = (1/(np.sqrt(2*np.pi*sigma*sigma)))*np.exp(-(((x-mu)**2)/(2*sigma*sigma))) fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(10, 5)) ax0.plot(x, y) ax1.plot(x,stats.norm.cdf(x,0,1)) ax0.set_title('Normal: $\mu$=%.1f, $\sigma^2$=%.1f' % (mu,sigma)) ax0.set_xlabel('x') ax0.set_ylabel('Probability density', fontsize=15) ax1.set_title('Normal: $\mu$=%.1f, $\sigma^2$=%.1f' % (mu, sigma)) ax1.set_xlabel('x') ax1.set_ylabel('Cumulative density', fontsize=15) fig.subplots_adjust(wspace=0.4) plt.show() test_norm_pmf()
【运行结果】
如下图所示。
正态分布对应的概率密度函数和分布函数
自然界中许多随机指标都服从一种“中间高,两头低”的概率特性。例如,一门课程的考试成绩,人的身高、体重等。
正态分布这种“钟形曲线”很好地反映了现实世界中的中间高、两头低的随机现象。
推荐阅读
《人工智能数学基础》
***粉丝福利时间***
评论区留言,点赞数前10可获得此书!!!
以72个小时计!
注:若是在活动截止日期后24小时内无法取得用户回复或联系,将按照留言点赞排名顺延。
-
python变量的作用域:局部变量和全局变量
2018-08-10 18:14:10变量定义以后,是有一定的使用范围,称之为变量的作用域。比如Java中,变量的使用范围是变量声明时所在的{}范围,而python的作用域对应的为同一个缩进。按着变量的使用范围给变量划分成如下两种: 1.全局变量:...变量定义以后,是有一定的使用范围,称之为变量的作用域。比如Java中,变量的使用范围是变量声明时所在的{}范围,而python的作用域对应的为同一个缩进。按着变量的使用范围给变量划分成如下两种:
1.全局变量:就是在函数外部定义的变量
2.局部变量:就是在函数内部定义的变量
1.全局函数和局部函数的作用域
局部变量作用域:只能在被声明的函数内部访问,函数外部使用不了。
这也是不同函数里可以定义名称一样变量的原因
全局变量作用域:可以在整个程序范围内访问,任意函数都可以访问
#1.局部变量,外部访问不了 def f1 (v1,v2): #参数也属于局部变量 sum = v1+v2 a = 5 #局部变量,函数外部访问不了 return sum -------------------------------- print(a) #报错,NameError: name 'a' is not defined ===================================================================== #2.全部变量,函数里外都可以访问 a =3 def f3(v2): # a = a+1 注意:报错,因为局部作用域内只能引用全局域变量的值,而不能修改全局作用域的值。 # b = a+1 则不会报错,引用全局变量的值,运算后给赋给局部变量b. return a+1 #外部的全局变量函数内部使用 print(f3(1)) =============结果如下====================== 4 ===================================-=================================== #3.如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的 sum =5 def f2(v2): sum =0 while v2 < 10: sum += v2 #这里sum使用的是局部变量的初始值0,而不是全局sum=5 v2 += 1 return sum print(sum) print(f2(0)) ===========结果如下========================= 5 45 ===========================================
注意:1. PYTHON的作用域由def、class、lambda等语句产生,if、try、for等语句并不会产生新的作用域,换句话说就是if,try,for等语句里面定义的变量并不会随着该语句执行结束而回收,而是可以到处引用的,if,try,for等语句内变量作用域实际范围受其所在 的def,class,lambda范围约束。
2.当 Python 遇到一个变量的话他会按照这样的顺序进行搜索LEGB法则:本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing locals)→全局/模块作用域(Global)→内置作用域(Built-in).具体什么是LEGB法则要等后面学完闭包后再讲,这里大致了解一下即可。
2.作用域的划分LEGB
1. L(local)局部作用域
局部变量:包含在def关键字定义的语句块中,即在函数中定义的变量。每当函数被调用时都会创建一个新的局部作用域。Python中也有递归,即自己调用自己,每次调用都会创建一个新的局部命名空间。在函数内部的变量声明,除非特别的声明为全局变量,否则均默认为局部变量。有些情况需要在函数内部定义全局变量,这时可以使用global关键字来声明变量的作用域为全局。局部变量域就像一个 栈,仅仅是暂时的存在,依赖创建该局部作用域的函数是否处于活动的状态。所以,一般建议尽量少定义全局变量,因为全局变量在模块文件运行的过程中会一直存在,占用内存空间。
注意:如果需要在函数内部对全局变量赋值,需要在函数内部通过global语句声明该变量为全局变量。2.E(enclosing)嵌套作用域
E也包含在def关键字中,E和L是相对的,E相对于更上层的函数而言也是L。与L的区别在于,对一个函数而言,L是定义在此函数内部的局部作用域,而E是定义在此函数的上一层父级函数的局部作用域。主要是为了实现Python的闭包,而增加的实现。
3.G(global)全局作用域
即在模块层次中定义的变量,每一个模块都是一个全局作用域。也就是说,在模块文件顶层声明的变量具有全局作用域,从外部开来,模块的全局变量就是一个模块对象的属性。
注意:全局作用域的作用范围仅限于单个模块文件内4.B(built-in)内置作用域
系统内固定模块里定义的变量,即系统自带的的变量函数之类的。如预定义在builtin 模块内的变量。
globa lVar = 100 #G def test_scope(): enclosingVar = 200 #E def func(): localVar = 300 #L print (__name__) #B
2.局部变量声明为全局变量global
val =10 def f1(v1): val =5 return val print(val ) #结果是10,因为局部变量val作用域只是函数内 print(f1(1)) #5 #使用global将局部变量声明为全局变量 val =10 def f1(v1): global val val = 30 return val print(val ) #结果是10.虽然声明了global,但是函数要调用才会执行,才会更新val的值 ============================================================================ val =10 def f1(v1): global val val = 30 return val f1(2) print(val ) #结果是30.调用函数f1后,将val的值给刷新了。
统一声明:关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈。关于转载博客,如有原创链接会声明;如找不到原创链接,在此声明如有侵权请联系删除哈。
-
在C语言中的实型变量分为两种类型
2021-05-20 06:21:34在C语言中的实型变量分为两种类型第二章 练习题一、填空题1、在C语言中的实型变量分为两种类型,它们是float型和( )型。2、若有定义:char c='\010';则变量c中包含的字符个数为( )3、已知字母a的ASCII码为十进制数97... -
分类变量、有序变量、数值变量差异分析(一)总览
2022-01-23 16:08:46 -
Python中变量的输入输出实例代码详解
2021-01-01 11:08:20输入函数给变量赋值举例: 注:所有input()得到的数据类型都是str字符串类型 2.变量类型的转换函数: • int(x) # str转整数 • float(x) # str转小数 转换举例: 3.输入综合练习: # 1.输入苹果的单价 ... -
VB 变量做实参举例
2010-06-07 14:44:39VB 变量做实参举例 VB 变量做实参举例 -
【数据收集】名义变量、序级变量、区间变量、比率变量的理解及例子
2020-11-08 16:17:12【数据收集】名义变量、序级变量、区间变量、比率变量的理解及例子名义变量(Nominal Variable)分类及举例序级变量(Ordinal Variable)分类和举例区间变量(Interval Variable)分类和举例比率变量分类和举例... -
vb应用程序举例——变量的生命周期
2010-05-11 10:49:23vb应用程序举例——变量的生命周期,一个小程序,简单易懂,居家旅行,必备良方。 -
Java变量
2019-09-29 00:06:53文章目录定义分类按被声明的位置划分成员变量局部变量成员变量和局部变量的区别使用原则按所属的数据类型划分基本数据类型变量引用数据类型变量定义格式注意事项 定义 在程序执行的过程中,在某个范围内其值可以... -
引用类型按值传递举例.png
2020-09-17 13:19:02Js引用类型按值传递的题目:两个变量间赋值时,以及作为变量给函数传参时,只是将原变量中的值复制一个副本给对方变量或形参变量 i. 对于原始类型的值,修改新变量,不影响原变量 ii. 对于引用类型的值的值,因为... -
二元随机变量
2018-12-28 14:29:28本章记录 1二元随机变量的定义 2二元离散型随机变量的定义、联合概率分布律、边际分布律、条件分布律 3二元离散型随机变量联合... 举例:研究入学儿童的发育情况。从一个样本(儿童)的身高、体重,两个... -
mysql 变量(局部变量/全局变量)使用说明
2021-04-25 10:55:18在mysql变量中分为局部变量@与全局变量@@他们都不分大小并,但两种变量用法稍有区别了,下面我来介绍产的用法.共同点:不区分大小写,都是变量.不同点:全局变量是系统中只读的,可以在配置文件中进行修改.mysql变量的术语... -
C语言——变量的定义与声明
2021-10-23 01:13:10(2)变量定义举例说明: 变量的定义相当于对一个喜欢的人表白只能有一次。 (3)为什么变量都是在内存中开辟空间? 因为变量是在运行的时候才会被开辟空间的,而程序在运行之后会被加载的内存中; 换言之当你... -
matlab定义变量-MATLAB,变量
2021-04-24 21:26:12本教程分享:《matlab定义变量》,matlab中变量如何定义?可以用sym 或者 syms 定义变量。如果没有提前定义的话,可以在使用时可直接进行赋值使用。MATLAB中变量名以字母开头,后接字母、数字或下划线,最多63个字符... -
静态变量和实例变量的区别
2022-01-12 14:18:43静态变量和实例变量的区别 -
windows配置jdk环境变量、mysql环境变量、tomcat环境变量、maven环境变量、git环境变量、node环境变量
2022-03-26 13:06:08windows配置jdk环境变量、mysql环境变量、tomcat环境变量、maven环境变量、git环境变量、node环境变量 -
oracle的引用型变量和记录型变量程序举例
2015-08-19 12:13:40--引用型变量 --打开oracle的输出口 --set serveroutput on declare --定义引用型变量,查询并打印1232的姓名和薪水 --pename varchar2(20);--这2句和下面的2句效果一致 --psal number; pename emp.ename%type... -
js的局部变量和全局变量的定义形式举例
2015-09-02 00:28:03//全局变量 任何地方都可以使用 function demo(){ var i=10;//局部变量 只能在当前函数中使用 x=10;//全局变量的另外一种定义形式 任何地方都可以使用 } demo(); alert(x); -
理解松弛变量
2018-09-13 21:24:41</div> -
【汇编语言】 变量
2021-03-29 08:49:48汇编语言 变量 一、变量的概念 二、变量的定义 (1)变量名 (2)变量定义伪指令 1.助记符:BYTE 2.助记符:WORD 3.助记符:DWORD (3)初值表 三、多字节数据的存储顺序 (1)字节编址的主存储器 (2)数据的存储顺序 (3)小端...