变量的作用域及存储方式

按照作用域分类:

  全局变量:

    在所有函数外部定义的变量称为全局变量。

    全局变量的使用范围,从定义开始到整个程序的结束。

  局部变量:

    在一个函数内部定义的变量或者函数的形参统称为局部变量。

    局部变量的适用范围是锁定义的函数的内部。

  需注意的问题:

    全局变量和局部变量命名冲突问题:

      在一个函数的内部,如果定义的局部变量和已经存在的全局变量冲突,那么局部变量将覆盖全局变量。

时间: 2024-07-28 21:13:08

变量的作用域及存储方式的相关文章

C/C++中变量的作用域和存储类型简介

写在开头 对于很多C/C++的初学者来说,很容易理不清变量的作用域和存储类型这一块的一些概念,也容易将其中的一些概念搞混淆.作为一个C/C++的初学者,笔者希望在这里能够尝试着去理一理这些较为繁杂的概念,主要当作自己备忘之用.当然,由于笔者水平有限,经验不足,在这里也只能罗列一些常用概念和使用方法,且可能会有些许不专业之处,望君理解并指正. 一定要把变量的作用域和存储类型分开来看 很多人很容易把变量的作用于和存储类型搞混,但其实只要我们从它们定义出发来看,这个问题是很容易解决的.作用域是一个变量

C语言入门(十四)变量的作用域和存储类型

变量的作用域和存储类型 一.作用域和生存期 C程序的标识符作用域有三种:局部.全局.文件.标识符的作用域决定了程序中的哪些语句可以使用它,换句话说,就是标识符在程序其他部分的可见性.通常,标识符的作用域都是通过它在程序中的位置隐式说明的. 1.局部作用域 前面各个例子中的变量都是局部作用域,他们都是声明在函数内部,无法被其他函数的代码所访问.函数的形式参数的作用域也是局部的,它们的作用范围仅限于函数内部所用的语句块. void add(int); main() { int num=5; add(

1005------C语言-----------C语言变量的存储方式解析

0.背景 在看APUE第七章的时候,作者分析了setjmp和longjmp这种函数间跳转机制对不同存储类型变量的影响,看到register,auto,volatile,static等等这些关键字很模糊,也可能太少用了,但是自认为C语言基础不错的我还是不能接受任何不懂的知识点,于是就捋了捋思路. 1.C语言变量的基本属性 在C语言中,每一个变量都有3个属性: (1)类型,就是常用的int.char等,它确定了变量存储长度和运算方式: (2)作用域,根据变量所处的位置分为全局变量和局部变量: (3)

数据的存储方式

C++11标准新增加了一种存储方式----线程存储. C++11目前有四种管理数据内存的方式: 自动存储 静态存储 动态存储 线程存储 自动存储 在函数内部定义的常规变量为自动变量,使用自动存储.自动变量:指在定义它们的时候才创建,在定义它们的函数返回时系统回收变量所占存储空间.对这些变量存储空间的分配和回收是由系统自动完成的.一般情况下,不作专门说明的局部变量,均是自动变量.自动变量也可用关键字auto作出说明.自动变量只有一种存储方式,就是存储在栈中.由于自动变量存储在栈中,所以自动变量的作

C++中的数据存储方式自动存储、静态存储和动态存储

C++中变量存储方式有三种,自动存储,静态存储,动态存储 自动存储简单意义上就是在函数内不用任何关键字直接定义的变量,它在函数被调用时被创建,在函数退出时自动消失, 静态存储顾名思义就是在程序的整个运行过程中都存在,在函数体外定义的变量自动为静态存储方式,也可以在函数内使用static关键字定义 动态存储是以关键字new和delete构成的,在程序运行过程中需要时通过new现场分配指定大小的空间,不再需要时使用delete来释放

C语言之局部变量&全局变量&变量存储方式

一.角度分析: 变量作用域 -------> 局部变量和全局变量 变量存在的生存期 ---------> 静态存储方式和动态存储方式 二.局部变量: 局部变量也称为内部变量.局部变量是在函数内作定义说明的.其作用域仅限于函数内,离开函数后再使用这种变量是非法的. 例子: 关于局部变量的作用域还要说明以下几点: 1)主函数也是一个函数,它与其他函数是平行关系.主函数中定义的变量也只能在主函数中使用,不能在其他函数中使用.同时,主函数中也不能使用其他函数中定义的变量. 2)形参变量是属于被调函数的

C语言之变量类型和存储方式

变量可以分为全局变量.静态全局变量.局部变量和静态局部变量 变量的声明有两种情况: 1.一种是需要建立存储空间的(定义性声明).例如int a 在生命的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的(引用性声明).例如extern int a 其中变量a是在别的文件中定义的. 内存区域的划分: 1.栈区:由编译器自动分配和释放的内存区域,用于存放函数的参数值.局部变量等. 2.堆区:程序员向系统申请或释放. 3.全局区:用来保存全局变量和静态变量. 4.文字常量区:用来保存常量字符

变量的存储方式

变量分为静态存储方式和动态存储方式 静态存储方式是指在程序运行期间由系统分配固定的存储空间方式 动态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式 C语言中每一个变量和函数都有两个属性:数据类型 和 数据的存储类别  存储类别指数据在内存中存储的方式(如静态存和动态存储和动态存储) C的存储类别包括4种:    自动的(auto) , 静态的(static), 寄存器(register),外部的(extern) // auto 变量 和 static变量 #include<std

C语言学习笔记:12_变量的存储方式和生存期

/* * 12_变量的存储方式和生存期.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> /** * 从变量的作用域分: 全局变量,局部变量 * 从变量存在的时间(生命周期)分:静态存储方式,动态存储方式 * * 静态存储方式:在程序运行期间由系统分配固定的存储空间的方式 * 动态存储方式:在程序运行期间根据需要进行动态的分配存储空间的方式. * * 数据存放的