原创作者: fullfocus   阅读:1052次   评论:0条   更新时间:2011-05-26    

   今天碰到一个局部静态变量的作用域的问题。有些诱惑,所以回去上机实践了以下,总结如下:

cpp 代码
  1. #include   <stdio.h>
  2. int* f1(int i)   
  3. {   
  4.   
  5.     static int s = 2;  //局部静态变量,其只在本函数之内存在。但又与局部变量相区别,其在离开函数时并不消失   
  6.     s = s +i;   
  7.     return &s;  //可以返回地址   
  8. }   
  9. void main()   
  10. {   
  11.  int *a =   f1(1);   
  12.   
  13.  printf("cout:%d\n",*a);   
  14.     
  15.  a = f1(1);    // s只初始化一次   
  16.   
  17.   printf("cout:%d\n",*a);  //   
  18.   
  19.   //s  = s+1;   出错,s在此范围不存在。其不是file scope   
  20.   
  21. }  

运行结果:

 

评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics