变量的作用域

//

//  main.c

//  变量类型

//

//  Created by 向春晓 on 15/11/13.

//  Copyright © 2015年 个人. All rights reserved.

//

//一, 变量的作用域

// c  语言根据作用域的不同,将变量分为局部变量和全局变量。

 

// 1 定义,在函数内部定义的变量,成为局部变量,形式参数也属于局部变量,

// 2  全局变量在 main函数外部。

//变量存储类型,: 普通内存, 运行时堆栈, 硬件寄存器。

 

// c 语言根据变量的存储类型的不同,可以把变量分为,自动变量,静态变量, 寄存器变量。

// 1 自动变量  定义, 自动变量时存储在堆栈中的,

// 默认所有的局部变量都是自动变量, auto 修饰局部变量, 但是极少用这关键字修饰。

// 生命周期,自动创建,

#include <stdio.h>

// a 是 一个全局变量,静态变量

int a;

 

void  test() {

    

    // b 是一个局部变量,自动变量

    int b=0;

    b++;

    // c 是局部变量, 静态变量

    static int c = 0;

    c++;

    printf("b=%d, c= %d\n",b,c);

}

 

int main(int argc, const char * argv[]) {

    for(int i =0 ; i<3; i++){

        test();

    }

    

    printf("Hello, World!\n");

    return 0;

}

//静态便利时存储在静态内存中的, 也就是不属于堆栈,

// 哪些事静态变量

// 所有的全局变量时静态变量 , 被关键字修身static 也是静态变量

// 生命周期, 静态变量在这个运行时运作。

 

//register 修饰的自动变量都是寄存器变量,只有自动变量才是寄存器变量,寄存器变量只限于 int,char 和指针类型的变量使用

//生命周期,自动释放。

// 未来提高 运算速度,一般会将一些频繁使用的自动变量定义为寄存器变量,这样的程序尽可能的为他分配变量。

 

posted @ 2016-03-28 08:10  lance.xiang  阅读(108)  评论(0)    收藏  举报