精华内容
下载资源
问答
  • 看到一种说法除了字符串字面量存储在常量区,其他的字面量一般会称为立即数被包含在程序生成的代码中。 但是这样一代码 printf("%f\n", 5) 用gcc编译器的时候会输出0,用vc出现错误(因为越界访问)。 看到一种...
  • C语言深度挖掘1.ppt

    2020-03-22 11:26:16
    C 语言的深度挖掘 (一) 是否入门 改进 有错吗 为...实际应用的例子 位域 应用位域的例子描述符 C/C++程序运行时的内存结构 全局变量用static修饰的局部变量都存储在静态数据区 程序指令和大部分字面常量存储在
  • C语言变量的作用域

    2018-12-29 11:10:12
    作用域:当存在多个文件和函数时,变量在哪个文件的函数中可以被使用。 存在期:变量在程序运行后存在(占据存储区)的时间,如始终存在,本文件内存在,本函数被调用的时候存在。 变量定义时可以前缀以下关...

    C语言变量的作用域

    变量是相对于常量而言的,代表了内存中具有特定属性的一个存储单元,程序运行期间其值可以改变。

    1.基础知识

    数据类型:这个不必多说,就是为了确定变量所占内存的大小,如int型占一个字。
    作用域:当存在多个文件和函数时,变量在哪个文件的函数中可以被使用。
    存在期:变量在程序运行后存在(占据存储区)的时间段,如始终存在,本文件内存在,本函数被调用的时候存在。
    变量定义时可以前缀以下关键字,表示特定属性。
    auto: 自动变量,变量定义时无前缀,则默认为自动变量;
    static:静态变量;
    register:寄存器变量,变量存储于寄存器中,现已基本不用;
    extern:将全局变量的作用域扩展至此,即,这个关键词出现在哪,则其后声明的全局变量在此后便可使用。

    **

    2.总体认知

    **
    按照作用域和存在期划分,变量分为自动变量、寄存器变量、静态局部变量、静态全局变量、全局变量。其总体特性如下表。
    在这里插入图片描述

    3.具体解释

    3.1局部变量

    • 局部变量包括自动变量、静态局部变量、寄存器变量;
    • 局部变量在本函数体内定义,存在于本函数体内;
    • 不同函数内,局部变量可以同名;
    • 函数形参也是局部变量;
    • 在函数体内的符合语句中可定义局部变量,且只存在和作用于该语句中;

    3.1.1自动变量

    自动变量是局部变量的一种。
    定义方式:
    函数内定义:

    void xxx(void)
    {
    auto+数据类型+变量名称+;
    auto int A=0;
    char A=0;
    }//这里形参和复合语句的局部自动变量的定义不再举例说明;
    

    变量定义时无前缀,则默认为自动变量
    作用域: 在本函数内可以调用;
    存在期:在函数内定义,数值可变,存在于函数运行始终,伴随函数开始而存在,结束而消亡。

    3.1.2静态局部变量

    静态局部变量是局部变量的一种,在函数内定义和使用,存在于函数体外,编译时一次赋值终身不变。
    定义方式:

    void xxx(void)
    {
    static+数据类型+变量名称+;
    static int A=10;
    static int B;
    }
    

    在函数体内定义,定义时未赋予初始数值或者字符,则默认为0或者空字符
    作用域:在本函数内可以调用;
    存在期:在函数内定义,数值不变,在程序编译时存在,并且始终存在,直到程序运行结束,不以函数的运行与否而产生和消亡。

    3.2全局变量

    全局变量也称外部变量和全程变量,定义后始终存在于整个程序,作用于声明处。

    3.2.1全局变量(非静态)

    可以理解为auto 关键字缺省;
    定义方式:
    1、当只有一个文件的时候
    数据类型+变量名称;

    int A=0;	//全局变量A从此处,存在和作用于向下的全部程序。
    void xxx(void)
    {
    ……
    }
    char B=’c’; 		//全局变量b从此处,存在和作用于向下的全部程序。
    void xxxx(void)
    {
    ……
    }
    

    2、当有多个文件的时候

    //<xxx1.c>/
    int A=0;	// 全局变量A在此处作用于向下的整个文件。
    //全局变量A在程序编译的时候就存在于整个程序,本文件可以使用。
     void xx(void)
    {……}
    //<xxx2.c>/
    void xxx(void)
    //全局变量A在程序编译的时候就存在于整个程序,本文件可以使用。
    {……}
    extern A	 //全局变量A在xxx2.c文件的此处作用于向下的整个文件
    void xxxxx(void)
    {……}
    /
    

    3.2.2静态全局变量

    利用关键字static声明。编译时一次赋值终身不变。主要用于多文件时,对它文件屏蔽该变量。

    //<xxx1.c>/
    static int A=0;		// 静态全局变量A在此处作用于向下的整个文件。
    //静态全局变量A在程序编译的时候就存在于整个程序,本文件可以使用。
     void xx(void)
    {……}
    //<xxx2.c>/
    void xxx(void)
    //全局变量A在程序编译的时候就存在于整个程序,除了定义该静态全局变量的文件外,他文件无法使用。
    {……}
    extern A	*erro
     //除了定义该静态全局变量的文件外,静态全局变量A无法被他文件使用;
     void xxxxx(void)
    {……}
    /
    

    4.提高知识点

    4.1变量的定义和声明

    在这里插入图片描述
    图4.1
    定义一定是声明,声明不一定是定义;
    定义在于确立存储空间,声明在于扩展作用域;
    全局变量可以一次定义,多处声明,即将其作用域扩展至多处;

    4.2变量的存储区

    在这里插入图片描述
    图4.2
    内存一般划分为,程序区、静态存储区、动态存储区;
    动态存储区存储:
    1、形参
    2、局部自动变量
    静态存储区存储:
    1、全局变量(包含静态和非静态局部变量)
    2、static局部变量

    展开全文
  • 在哪个代? 42 15.1.1. 调整数组容量 42 16. Hashmap和 concurrentHashmap除了线程安全 还有什么区别,put的时候是怎么处理的。 43 17. 数据库组合索引,储存在一个叶子节点还是多个? 44 17.1. 索引的利弊与如何...
  • *但是因纸上做题,条件上做了简化————使用了sizeof()可确定大小的字符数组而非“字符串常量”。具体用sizeof()还是strlen()。这些小问题请读者自行区分。 *如果可用sizeof()确定大小,就可以用malloc()...
  • 2.22 有没有一种自动方法来跟踪联合的哪个使用? 59 枚举 60 2.23 枚举和一组预处理的#define有什么不同? 60 2.24 枚举可移植吗? 60 2.25 有什么显示枚举值符号的容易方法吗? 60 位域 60 2.26 一些...
  • 2.22 有没有一种自动方法来跟踪联合的哪个使用? 59 枚举 60 2.23 枚举和一组预处理的#define有什么不同? 60 2.24 枚举可移植吗? 60 2.25 有什么显示枚举值符号的容易方法吗? 60 位域 60 2.26 一些...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    2.22 有没有一种自动方法来跟踪联合的哪个使用? 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些...
  • C++ Primer Plus 中文版 第4版 清晰版

    千次下载 热门讨论 2009-12-06 14:45:21
    5.3.2 等待一时间 124 5.4 do while循环 125 5.5 循环和文本输入 127 5.5.1 使用原始的cin进行输入 127 5.5.2 使用cin.get(char)进行补救 128 5.5.3 使用哪一个cin.get() 129 5.5.4 文件尾条件 129 ...
  • 5.3.2 等待一时间:编写延时循环 5.3 do while循环 5.4 基于范围的for循环(C++11) 5.5 循环和文本输入 5.5.1 使用原始的cin进行输入 5.5.2 使用cin.get(char)进行补救 5.5.3 使用哪一个cin.get( ) 5.5.4 ...
  • 2.22 有没有一种自动方法来跟踪联合的哪个使用?  枚举  2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗?  位域  2.26 一些结构声明中的...
  •  2.22 有没有一种自动方法来跟踪联合的哪个使用? 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些...
  • 2.22 有没有一种自动方法来跟踪联合的哪个使用? 30 枚举 31 2.23 枚举和一组预处理的#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号的容易方法吗? 31 位域 31 2.26 ...
  •  2.22 有没有一种自动方法来跟踪联合的哪个使用?  枚举  2.23 枚举和一组预处理的#define有什么不同?  2.24 枚举可移植吗?  2.25 有什么显示枚举值符号的容易方法吗?  位域  2.26 一些结构声明中的...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    2.22 有没有一种自动方法来跟踪联合的哪个使用? 30 枚举 31 2.23 枚举和一组预处理的#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号的容易方法吗? 31 位域 31 2.26 ...
  • 2.22 有没有一种自动方法来跟踪联合的哪个使用? 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些冒号和数字是...
  • 2.22 有没有一种自动方法来跟踪联合的哪个使用? 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些冒号和数字是...
  • Karen Morton及其团队本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家...
  • Karen Morton及其团队本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家...
  • 面试题13:char型数据内存中的存储形式 3.4 运算符 面试题14:请写出下列代码的输出内容 面试题15:运算符的优先级问题 面试题16:&&和&,||和|有什么区别 面试题17:什么是左值,什么是右值 面试题18:请写出程序...
  • oracle数据库经典题目

    2011-02-17 15:05:20
    1.全局存储区SGA中,哪部分内存区域是循环使用的?( B ) A.数据缓冲区 B.日志缓冲区 C. 共享池 D.大池 2.如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所占用的资源?( D ) ...
  • DX1.5 手机正式版

    2011-02-25 17:39:55
    1:得到一些环境信息,就是那define 常量设置语句 2:得到一些常用常量: DISCUZ_ROOT 程序根目录 TIMESTAMP 程序执行时间戳 IS_ROBOT是否为机器人 3:最重要的是初始化一个全局数组(这里说并不是超级全局变量)$...
  • javascript入门笔记

    2018-05-15 15:01:07
    常量命名时采用全大写形式 作业: 1、声明一个变量 r ,来表示一个圆的半径,并赋值 2、声明一个常量PI ,来表示圆周率3.14 3、通过 r 和 PI 来计算 该圆的周长,保存变量l中 周长 = 2 * π * 半径 4、...
  • 组成:表空间、、区、块的组成层次 六、 oracle安装、卸载和启动  硬件要求 物理内存:1GB 可用物理内存:50M 交换空间大小:3.25GB 硬盘空间:10GB  安装 1. 安装程序成功下载,将会得到如下2个文件: ...
  • @Environment 设置或返回存储在NOTES.INI或Notes Preferences中的环境变量 @Error 允许您在表达式中产生错误条件 @Exp 计算以e为幂,以指定的数为指数的值 @Explode 返回由文本串或日期范围中的元素所组成的文本列表...
  • 下面哪个关键字,使类不能被其他的类继承?c(选择1项) A) static B) finally C) final D) instance 题目14:a 程序如下: String s1=new String("Hello"); String s2=new String("there"); String s3=new ...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

常量存储在哪个段