zoukankan      html  css  js  c++  java
  • C语言变量总结

    1. 自动变量

    一般情况下代码块内部定义的变量都是自动变量。当然也可以显示的使用auto关键字,所有自动变量的声明周期就是变量所属的大括号

    2. register寄存器变量

    通常变量在内存当中,如果能把变量放到CPU的寄存器里面,代码执行效率会更高

    register int I;

    3. 静态变量

    静态变量是指内存位置在程序执行期间一直不改变的变量,静态变量在程序刚加载到内存的时候就出现,所以和定义静态变量的大括号无关,一直到程序结束的时候才从内存消失,同时静态变量的值只初始化一次。

    Static int I = 0;//定义了一个静态变量

    (1)代码块作用域内的静态变量(局部静态变量)

    一个代码块内部的静态变量只能被这个代码块内部访问。

    (2)代码块作用域外的静态变量(全局静态变量)

    代码块之外的静态变量在程序执行期间一直存在,但只能被定义这个变量的文件访问,代码块之外的静态变量只能在定义这个变量的文件中使用,在其他文件中不能访问。

    因为全局变量的名字是不能相同的,这样会带来一个什么问题?因为一个项目往往是多个人写的,每个人都定义自己的全局变量,最后代码合并的时候会出错。但static的全局变量在不同的文件中名字是可以相同的

    4. 全局变量

    全局变量的存储方式和静态变量相同,但可以被多个文件访问,定义在代码块之外的变量就是全局变量

    全局变量即使不在同一个文件里面,也不能重名。

    5. 外部变量与extern关键字

    extern int i;  //声明一个变量,这个变量在别的文件中已经定义了,这里只是使用,而不是定义

  • 相关阅读:
    codeforces 1060 B
    codeforces 1060 A
    牛客 国庆七天乐 day1 L
    BZOJ 1087: [SCOI2005]互不侵犯King
    codeforces 792CDivide by Three(两种方法:模拟、动态规划
    codeforces 797C Minimal string
    codeforces 110E Lucky Tree
    codeforces 798D
    2017福建省赛 FZU2272~2283
    Android -- Looper、Handler、MessageQueue等类之间关系的序列图
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12292512.html
Copyright © 2011-2022 走看看