C语言中static:
static 可以修饰局部变量、全局变量、函数
static 修饰的局部变量存放在静态存储区,生命周期是整个程序结束。在定义时就要初始化,且只能初始化一次,如果没有初始化默认值为0。static修饰的函数或者全局变量,主要是为了限制作用域:仅限于本文件。函数又称内部函数;对于全局变量,是否有static它的存储区域都是静态存储区。
OC中的static
static不能修饰属性和方法,可以修饰方法中的局部变量。static修饰的局部变量变成静态变量存储在静态区,当方法执行完毕局部变量不会回收,下次执行这个方法直接使用,不用声明。
-----类方法不可以访问实例变量(函数),通过static修饰的实例变量(函数),可以被类方法访问;
const 是用来定义常量的。
区别:
static 用于定义静态变量,静态变量只会被初始化一次,并且直到程序销毁时才会释放
关键字const 用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,被const修饰的变量是只读的
补充:
extern 定义的变量是外部变量
#define和 const 定义常量
预编译指令只是对值进行简单的替换,不能进行类型检查
可以保护被修饰的东西,防止意外修改,增强程序的健壮性
-----常量指针const int * n; 指针指向的值不能改变
-----指针常量int * const n; 指针本身是个常量