C/C++中的static
C++中的Static有两个作用。
1、 静态局部变量
静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域在该函数内,只能在定义该变量的函数内使用该变量。 允许对构造类静态局部量赋初值,若未赋以初值,则由系统自动赋以0值。
void fun1()
{
static int i = 0;
cout << ++i << endl;
}
int main()
{
for(int i = 0; i < 5; i++)
{
fun1();
}
}
Output :
1
2
3
4
2、静态全局变量
全局变量前再加上static 就成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。全局变量作用域是整个源程序,而静态全局变量作用域确是该文件。静态函数类似。
相关文档:
写在前面:
论坛里总有那么一些问题是长盛不衰的,今天这个问,明天那个问,到历史帖子里一搜可以抓出来一大把。有时候这都令我怀疑是不是我们的教育体制存在问题……
于是我开了这篇文章,搜集我见到的长生不老之帖,希望可以起到参考价值。
这里使用的编译环境为 gcc/g++ 4.3.3 for ubuntu 9. ......
下面是我关于C语言中各种数据类型长度的总结:(参考The C Programming Language)
1. c语言中的整数类型有char, short, int, long等几种, 下面是C语言对每种数据类型长度的规定:
(a). short和long类型的长度不相同
(b). int类型通常同具体机器的物理字长相同
(c).&nb ......
C/C++返回内部静态成员的陷阱
陈皓
背景
在我们用
C/C++开发的过程中,总是有一个问题会给我们带来苦恼。这个问题就是函数内和函数外代码需要通过一块内存来交互(比如,函数返回字符串),这个问题困
扰和很多开发人员。如果你的内存是在函数内栈上分配的,那么这个内存会随着函数的返回而被弹栈释放,所以,你 ......
今天看《C++ Templates》,看到一个非类型模板实参的例子中有这样的代码:
template <typename T, T nontype_param>
class C;
class X{
public:
int n;
static bool b;
};
C<int X::*, &X::n>* c5;
X::*可以表示X类的成员的指针,用于表示类型,第一次见, ......