在论坛上天天被问到 const 与 static的 问题。。 一直重复回答。 这里列举一下, 如果有遗漏,请网友补充。。。。
const,先说变量
const int A; 常量
const int* pA; 指向常量的指针。 (*pA)++ 错误,不允许改变常量, 但是 pA = &D 可以改变指向的对象。
int const * pA; 常量指针,指向int。(*pA)++ 允许, 但不可以改变指向,既 pA = &D 错误
函数
const int a(); 返回常量
int const * a(); 返回常量指针
const int* a(); 返回指向常量的指针
int a(int b) const; 函数中不允许改变b的值
另外还有更多的
const int nB = 10;
const int const * PA = &B;
和
const int const * funA(const int * pBuf) const;
请网友们自己分析吧
static 静态作用域, 修饰函数中的变量时 说明只扶植一次,并且保留上一次的结果
修饰全局函数或变量时, 说明作用域只针对于这个文件, 与c++中的命名空间 namespace 有点像,
只不过 命名空间可以扩充到多个文件中