四种变量的区别(局部变量,全局变量,静态局部变量,静态全局变量)

区别:

1. 局部变量:

  (1)在函数体内部或者复合语句中定义的变量称为局部变量。

  (2)作用域为当前的函数体。

  (3)在栈区(动态存储区)分配。

  (4)函数调用时开始分配,调用结束时释放。

2. 全局变量:

  (1)在函数体之外定义的变量称为全局变量。

  (2)当前文件所有函数都可以调用该变量,其他文件调用需要使用extern关键字。

  (3)在静态存储区分配。

  (4)程序运行期间不释放。

3. 静态局部变量:

  (1)在函数体内部定义并加上static关键字修饰的变量。

  (2)作用域为当前函数体,函数调用后不释放,值保留为最后一次调用的值。

  (3)在静态存储区分配。

  (4)程序运行期间不释放。

4. 静态全局变量:

  (1)在函数体以外定义并加上static关键字修饰的变量。

  (2)作用域为当前文件。

  (3)在静态存储区分配。

  (4)程序运行期间不释放。

时间: 2024-11-13 06:48:04

四种变量的区别(局部变量,全局变量,静态局部变量,静态全局变量)的相关文章

freemarker四种变量

1.简介说明 (1)数据模型中的变量:root中的变量 (2)模板中的变量:使用<#assign>定义的变量 (3)局部变量:在指令中的变量 (4)循环变量:在循环中的变量 2.使用说明 (1)数据模型中的变量:root中的变量 A Junit方法 @Test public void testRoot() { root.put("age", "23"); studentPrint("tag.ftl"); } <html>

python第五十四天 javascript语法 1.运算符 2. 流程控制 3. 函数 4. 四种变量 5. 数据类型的运用 6. js页面交互

1.运算符 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> let n1 = 5; let n2 = 2; let res = n1 / n2; console.log(res); // 将数字转换成整数,

Activity的四种启动模式区别

(1) standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中. (2) singleTop 如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例. (3)singleTask 如果在栈中已经有该Activity的实例,就重用该实例.重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈.如果栈中不存在该实例,将会创建新的实例放入栈中. (

四种变量交换swap方法

1.void swap(int &x, int &y){ int temp=x; x=y; y=temp; } 2.void swap(int &x, int &y){ x=x+y; y=x-y; x=x-y; } 3.void swap(int &x, int &y){ x=x-y; y=x+y; x=y-x; } 4.void swap(int &x, int &y){ x=x^y; y=x^y; x=x^y; } 四种变量交换swap方

C语言支持的四种变量存储类型

http://blog.csdn.net/zhandoushi1982/article/details/5425835 一)auto:auto称为自动变量(局部变量).局部变量是指在函数内部说明的变量(有时也称为自动变量).所有的非全程变量都被认为是局部变量,所以auto实际上从来不用.局部变量在函数调用时自动产生,但不会自动初始化,随函数调用的结束,这个变量也就自动消失了.下次调用此函数时再自动产生,还要再赋值,退出时又自动消失.二)static:static称为静态变量.根据变量的类型可以分

MySQL的四种变量类型

一.全局变量在系统运行期间动态更改其参数,重启后失效.SET GLOABL var=XXX;SET @@global.var=XXX;(SET @@var=XXX)以上两种方式等效 查看系统的全局变量show global variables [like "%"]; 二.用户变量对当前回话有效,回话结束后,变量销毁SET @var=XXX;SELECT @var:=uid FROM table where id=10;使用@作为前缀标识符,set可以使用=或=:赋值,select则只能

四种内部类和区别

内部类的主要作用如下: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据 3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便. java主要有四种内部类:成员内部类.静态内部类.方法内部类.匿名内部类. 成员内部类类似普通的成员变量,定义在属性级别,可以访问外部类任何属性.使用时,new 外部类.new 内部类. 静态内部类不允许访问外部类的非静态属性.使用时可以直接

JMeter学习-032-JMeter常见四种变量简介

在JMeter自动化测试脚本编写过程中,经常需要对测试脚本进行一些参数设置.例如,设置测试计划的全局变量(方便切换不同的测试环境).样本线程(HTTP请求等)的参数传递等. 通常,JMeter中常用的有如下五种变量设置方式: 1.测试计划面板中定义的变量,变量作用域为所有线程: 2.[配置元件/用户定义的变量],变量作用域依据所处位置有所不同: 3.[配置元件/CSV Data Set Config],是参数化必不可少的组件配置,相较于函数方式的参数读取更加便捷,且易于测试脚本的管控,其变量作用

javascript 运算符,流程控制,四种变量,函数一级页面交互

每一种语言中都有自己的运算符,表现方式都有一些区别. javascript运算符如下: - 赋值运算符 前提:x=5,y=5 | 运算符 | 例子 | 等同于 | 运算结果 | | :----- | :--- | ------ | -------- | | = | x=y | | 5 | | += | x+=y | x=x+y | 10 | | -= | x-=y | x=x-y | 0 | | *= | x*=y | x=x*y | 25 | | /= | x/=y | x=x/y | 1 |