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;  //声明一个变量,这个变量在别的文件中已经定义了,这里只是使用,而不是定义

  • 相关阅读:
    动态规划 01背包问题
    日常水题 蓝桥杯基础练习VIP-字符串对比
    本博客导航
    2019 ICPC 南昌 (C E G L)
    [模板]线段树
    [模板]手写双端队列(或普通队列)
    2019 ICPC Asia Yinchuan Regional (G, H)
    与超级源点与超级汇点相关的两题POJ 1062, HDU 4725
    [模板]链式向前星
    [总结]关于反向建图
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12292512.html
Copyright © 2011-2022 走看看