2018 -0516 C语言学习

1.  C对象(存有值的内存) 有4种存储期:静态、线程、自动、动态分配存储期。

      静态:对象在程序执行期间一直存在

      线程:对象从被声明到线程结束一直存在

      自动:相当于一个暂时存储的内存,调用函数时候需要时候分配给变量,调用结束后释放刚才为变量分配的内存

      动态:

2.块作用域:

    块:用两个分括号包含的部分

    块作用域:声明在括号内的变量具有块作用域,简而言之就是在这个区域内有效;(也包括形参(虽然不在括号内))

3.让块作用域变量也能具有静态存储期------static

     块作用域中的变量存储期属于自动类型,即调用这个函数的时候被创建,离开时候被销毁,例子:

    void love()

    {

        int a ;

         ...........

        return 0;

    }

    这个块中,当调用这个函数时候 变量a被分配内存,当退出时候被销毁,再次调用时候再次初始化赋值,而如果改成:

    static int a; 

    则a为静态变量,在程序离开他们所在的函数后不会消失。

    即再次调用这个函数时候保存的是上一次调用后a值,即不会将a重新初始化赋值。但是注意亮点:

    ①形参中不能使用static,如int work(static int x)

    ②只有在执行块内代码时,才能通过标识符访问!!!!我之前还想可以在其它函数调用这个变量×

4. 声明在块或者函数头中的任何变量都属于自动存储类别,为了强调不要改变这个变量的类别可以使用关键字auto

    auto int a;

5. 如果一个源代码文件使用的外部变量定义在另一个源代码文件中,则必须使用extern在该文件中声明该变量

    extern char a;/*如果a被定义在另一个文件*/

    int main (void)


猜你喜欢

转载自blog.csdn.net/qq_36324796/article/details/80332653