static做用: 1限制范围(函数,变量只能在本文件中使用) 2设定变量存储区域(静态存储区域) const做用: 声明常量,它不能被修改,它存放在常量区
const定义的常量在函数执行以后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。
- const int *p = &s;//(1)
- int const *p = &s;//(2)
- int * const p = &s;//(3)
- const int * const p = &s;//(4)
(1)和(2)的效果是同样的,意思是 p 是可变的,可是 p 指向的值是不可变的。 (3)就恰好相反,p 是不可变的,只能指向一个地方,可是 p 指向的值是可变的。 (4)p不可变,*p 也不可变。 函数