Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359719
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-16 21:51:59


  • 函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值。
  • 在模块内的static全局变量可以被模块内的所有函数访问,但不能被模块外的其他函数访问。
  • 在模块内的static函数只可被模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内。
  • 在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝。
  • 在类中的static成员函数属于整个类所拥有,这个函数不接受this指针,因而只能访问类的static成员变量。

  1. #include <stdio.h>

  2. int
  3. sum(int a)
  4. {
  5.     auto int c = 0;
  6.     static int b = 3;
  7.     c += 1;
  8.     b += 2;

  9.     return (a+b+c);
  10. }

  11. int
  12. main(void)
  13. {
  14.     int i;
  15.     int a = 2;

  16.     for (i = 0; i < 5; i++)
  17.     {
  18.         printf("%d,", sum(a));
  19.     }
  20.     printf("\n");

  21.     return (0);
  22. }
Result:
  1. 8,10,12,14,16,



阅读(715) | 评论(1) | 转发(0) |
0

上一篇:字符串2整数

下一篇:自增自减

给主人留下些什么吧!~~

onezeroone2011-04-24 16:34:20

内存只被分配一次、类的所有对象只有一份拷贝、no this