1.在C语言中加了static 的变量或方法,表明这个变量或方法只能在本文件代码块中访问,外部的文件无法访问它(因为链接程序把它当作内部链接)static 变量存放在字段存取区内(同理方法内部的static 变量也是存放在这,而不是存放在stack中,所以方法执行时,它只初始化一次).例如:
static int value=20;
static int fun();
这种定义说明它们的访问权限只在本文件块内
2.在C++中static 有多种不同的解析,在文件块部,它的代表的意思是跟C语言一样,而它在类中代表着不同的含义,类中的static 变量或者static 代表它是属于这个类的,而不是属于类对象的(这点跟Java一样),所以它在内存中只存在一份内存.
3.c,c++const 在声明数据时都有代表是常量的意思,
a. C语言中声明的const 数据它默认的链接是外部链接的(当然extern 也是外部链接),而且不能用作声明数组的长度(必须使用宏).
b. C++文件内声明的变量它默认的链接却是内部链接,并且它可以用来声明数组的长度,当然它在方法里还代表着不同的意义.如:void fun(const char* ptr)代表ptr指向的内容不能改变; 而在类中定义的方法如:void Class::meth()const; 却代表着执行这个方法时不能改变类中的数据,同理,const int Class::meth()const 代表的是执行这个方法时,除了不能改变类中的数据,函数的返回值还是个int 常量.