关于static关键字的个人总结

1,static全局变量和普通全局变量的区别:static全局变量只初始化一次,防止在其他文件单元引用

2,static局部变量和普通局部变量的区别:static局部变量只初始化一次,下一次依据上次的结果值

3,static函数和普通函数的区别:static函数在内存中只有一份,普通函数在每次调用的时候都会维持一份拷贝

const常变量的用法

1.char * const  p1;

2.char const * p2;

3.const char * p3;

4.const char * const p4;

如果const位于*号右侧,const就是修饰指针本身,即指针本身是常量;

如果const位于*号左侧,const就是修饰指针所指向的变量,即指针指向为常量;

p1 是指针常量,本身不能被修改,指向的内容可以被修改;

p2和p3是常量指针,它本身可以被修改,它指向的内容不可以被修改;

p4本身是常量,并且它指向的内容也不可以修改。

指针常量和常量指针的区别:

常量指针:表达式为“常量的指针”,它首先是一个指针。即常量指针是一个指向常量的指针,他所指向的地址内容是不可变的

指针常量:表达式为“指针的常量”,它首先是一个常量。指针常量就是指针的常量,他是个不可改变地址的指针,但是可以修改他所指向的内容

重载,重写,隐藏三种在编程中的意义:

重载:函数名称相同,函数的参数列表不同(包括函数的参数类型和参数个数),返回的函数类型可以不同也可以是相同。重载可以发生在同一个类的不同函数之间,也可以是发生在父类和子类的继承之间。这两种之间要注意和重写相区分

重写:发生在父类和子类的继承之间,表示子类不想直接继承父类,因此可以通过重写函数来对父函数的覆盖。重写的时候,函数的参数类型 参数个数 函数返回类型和父类完全相同,仅仅重写了函数

隐藏:在oc中没有这个说法。重载和重写都是针对函数的,隐藏则除了针对函数,还会还针对成员变量。隐藏发生在父类和子类之间,隐藏指的是父类的同名函数或变量在子类中隐藏,其中只要函数同名就隐藏,不管参数相同与否。在子类中父类的同名函数或变量不可见,但在父类中依然存在。

你可能感兴趣的:(关于static关键字的个人总结)