C语言基础:C语言变量类型 - 全局变量和局部变量

前言

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


开始

我们来看一个小例子:

#include <stdio.h>

int a;

void test()
{
    int a = 20;

    printf("a = %d\n", a);
}

int main()
{
    printf("a = %d\n", a);
    
    int a = 10;
    a++;
    printf("a = %d\n", 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


posted @ 2015-01-08 13:33  背着吉他去流浪  阅读(492)  评论(0编辑  收藏  举报