• 存储类


    存储类

     接下来看一下代码:

    int x=30;
    printf("x1=%d",x);
    {
    int x=33;
    printf("x2=%d",x);
    }
    while(x++<33){
    int x=100;
    printf("x3=%d",x);
    }
    printf("x4=%d",x);
    

     首先,在代码中创建了一个变量x并赋值为30,第一个printf() 输出为30,接着定义了一个新的值为33的x变量,通过printf()输出,在while()循环中开始进行新建的变量x为100 并printf() 最后再循环结束后printf()一下

    自动变量的初始化

    除非显示初始化自动变量,否则它不会自动初始化

    int main(void){
    int i;
    int age=10;
    }  

    变量age的初始化值为10,而变量i的初始值则是先前占用分配给它的空间任意值,不要指望这个值是0.若想要给变量初始化就要先定义一个值

    int main(void){
    int i=1;
    int age=10;}
    

      寄存器变量

    变量存储再计算机内存中,称为寄存器变量。寄存器变量可以被存储再CPU寄存器中,或者更一般地,存储在速度块的可用内存,从而可以比普通变量更快第被访问和操作。通常使用存储类说明符register可以声音寄存器变量

    例如:

    {register int quick;
    }  

    具有外部链接的静态变量

    具有外部链接的静态变量有文件作用域、外部链接和静态存储时期。这一类型的变量被称为外部变量,把变量的定义声明放在所有函数之外,即创建了一个外部变量。为了是程序更加清晰,可以再使用外部变量的函数中通过使用extern关键字来再次声明它。

    例如:

    int coss;
    int main(void){
    extern int coss;//声明外部变量
    }
    int student(interesting num){
    extern int coss;
    }
    int teacher(){
    //未声明变量coss但是知道
    }
    int school(){
    int coss//声明变量coss,并转化为自动变量
    }
    int csl(){
    auto int coss;//将局部变量coss,默认为自动变量
    }

      C语言中有5个作为存储类说明符的关键字,它们分别是:auto,register,static,extern,typedef。除了最后一个和内存存储无关,由于语法原因呗归入此类。不可以在一个声明中使用一个以上的存储类说明符,这意味着不能将其它任意存储类说明符作为typedef的一部分

    说明符:auto表明一个变量具有自动存储时期,

    说明符:register只能用于具有代码块作用域的变量

    说明符:static用于具有代码块作用域的变量的声明时

    说明符:extern表明已经再别处定义了的变量

  • 相关阅读:
    Eclipse RCP与Spring OSGi:技术详解与最佳实践
    AutoCAD 2016机械设计从入门到精通(第2版)
    中文版CorelDRAW X7平面设计
    神奇的中文版Photoshop CC 2017入门书
    Hadoop实战(第2版)
    1048.判断三角形类型
    1046.求最大值
    1047.素数判定
    1056.最大公约数
    1057.众数
  • 原文地址:https://www.cnblogs.com/X404/p/12189532.html
Copyright © 2020-2023  润新知