局部变量和全局变量


局部变量

在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量”。

注意

例如,上面在f1函数中定义了变量b和c,倘若在f2函数中也定义变量b和c,它们在内存中占不同的单元,互不混淆。

全局变量

在函数内定义的变量是局部变量,而在函 数之外定义的变量称为外部变量,外部变 量是全局变量(也称全程变量)。

 

动态存储

定义

  1. 动态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式。

 

静态存储

定义

所谓静态存储方式是指在程序运行开始时由系统分配固定的存储空间的方式。

static

static可定义静态存储(放于子函数时,保持上次调试结束后的原值,不会进行销毁)

用于保持某些固定值等。

注意:若在定义时,不赋初值,系统会默认值为0;

Eg: 依次打出1~5的阶乘数;

#include "stdio.h"
int main()
{
   int factorial (int n);
   int i;
   for(i=1;i<=5;i++)
  {
       printf("%d\n",factorial(i));
  }
}
int factorial (int n)
{
   static result=1;
   result *= n;
   return(result);
}

register variable

为提高执行效率,C语言允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。(用于某个变量多次使用,提高执行效率)

extern outside variable

编译时提前分配内存的变量,用于解决C语言执行程序时,按照顺序读取导致某些变量来不及读取的错误。

其他

对自动变量来说,如果不赋初直则它的直是一个不确定的值

原因:由于每次函数调用结束后存储单元已释放,下次调用时又重新另分配存储单元,而所分配的单元中的值是不确定的。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM