• C语言学习笔记-变量存储


    1. 怎样确定常量的类型呢?从常量的表示形式既可以判定其类型,举例来说:只要看到由单撇号括起来的单个字符或转义字符就是字符常量。也可以在常量的末尾加专用字符,强制指定常量的类型。

    2. 从变量的作用域(即从空间)的角度来观察,变量可以分为全局变量局部变量

    3. 变量的存储有两种不同的方式:静态存储方式动态存储方式

    4. 在动态存储区中存放以下数据:

      • 函数形式参数。在调用函数时给形参分配存储空间
      • 函数中定义的没有用关键字static声明的变量
      • 函数调用时的现场保护和返回地址等
    5. C语言存储类别包括4种:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。根据变量的存储类别,可以知道变量的作用域和生存期

    6. 局部变量的存储类别

      • 自动变量(auto变量)。函数中的局部变量,如果不专门声明为static存储类别,都是动态的分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的局部变量都属于此类。

      • 静态局部变量(static局部变量)。特点:如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0或空字符。虽然静态局部变量在函数调用时结束后仍然存在(表明它可以只被赋值一次),但其它函数是不能引用它的。

        用static声明一个变量的作用:①对局部变量用static声明,把它分配在静态存储区中,该变量在整个程序执行期间不释放。②对全局变量用static声明,则该变量的作用域只限于本文件模块

      • 寄存器变量(register变量)。有些时候我们不需要显式的将变量指定为register,因为优化后的编译系统能够自动为一些经常使用的局部变量指定为register变量。

    7. 全局变量的存储类别

      • 扩展全局变量的使用范围可以用extern,比如在变量未声明前使用变量,或者在一个文件中使用另一个文件定义的全局变量:

        #include<stdio.h>
        
        int main()
        {
            extern A, B, C;     // 也可以写成 extern int A, B, C; 注意这样写并不代表是在声明3个变量
            scanf("%d %d %d", &A, &B, &C);
            return 0;
        }
        
        int A, B, C;
        
        int print()
        {
            printf("%d %d %d
        ", A, B, C);
        }
        

        如果要限定声明的全局变量只能在本文件使用,则要在全局变量加上static。

    8. 声明和定义:把建立存储空间的声明称为定义,而把不需要建立存储空间的声明称为声明

    9. 根据函数能否被其它源文件调用,将函数区分为内部函数外部函数

    总结

  • 相关阅读:
    (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
    今日头条 --新闻阅读器
    免费新闻娱乐接口文档
    [代码片段] Android百度地图定位收索取周边在列表中展示并选择
    引用其它布局
    关于推广个人博客的经验_博客推广
    博客推广方法技巧
    android项目解刨之时间轴
    Android小项目:计算器
    Android项目技术总结:网络连接总结
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/12678019.html
Copyright © 2020-2023  润新知