zoukankan      html  css  js  c++  java
  • C语言基础:C语言变量类型

    前言

    何为变量? 在我们之前学到的知识里面, 定义过很多变量, 比如int 变量, double变量, long变量, 这些都是属于变量, 这次我们所说的知识是在这些变量的基础上再添加一些知识, 那就是全局变量以及局部变量.


    开始

    我们来看一个小例子:

    #include <stdio.h>
    
    int a;
    
    void test()
    {
        int a = 20;
    
        printf("a = %d
    ", a);
    }
    
    int main()
    {
        printf("a = %d
    ", a);
        
        int a = 10;
        a++;
        printf("a = %d
    ", a);
        
        test();
    }

    输出结果:



    这里解释一下, 上面三个的a为什么会输出不同的值:

    第一个a, 在定义的时候, 并没有把他放入任何一个函数里面, 这也是全局变量的定义方式, 而全局变量在定义的时候, 如果你没有给它赋值, 那么默认都是0, 所以输出是0;

    第二个a, 定义在main函数里面, 并且赋值为10, 再++, 那a的值就是11, 所以输出的值是11;

    第三个a, 定义在test函数里, 并且赋值为20, 所以输出的值为20;

    PS:这一点很重要, 虽然这三个a都是同类型的变量, 但它们的作用域不同, 所以互不影响.


    下面是局部变量和全局变量的解释:

     1.局部变量:

     1> 定义:在函数(代码块)内部定义的变量(包括函数的形参)

     2> 作用域:从定义变量的那一行开始,一直到代码块结束

     3> 生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收

     4> 没有固定的初始值

     

     2.全局变量

     1> 定义:在函数外面定义的变量

     2> 作用域:从定义变量的那一行开始,一直到文件结尾(能被后面的所有函数共享)

     3> 生命周期:程序一启动就会分配存储空间,程序退出时才会被销毁

     4> 默认的初始值就是0


  • 相关阅读:
    redis 配置文件说明
    Python 详解命令行解析
    Python 的字符编码
    pt-online-schema-change utf8mb4 错误解决方法【转】
    [MySQL 5.6] Innodb新特性之export/import 表文件
    查找数据库大小和表大小
    MySQL 增删列
    使用MySQL Shell创建MGR
    Qingcloud_MySQL Plus(Xenon) 高可用搭建实验
    MySQL事务提交流程
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4282887.html
Copyright © 2011-2022 走看看