作用域、关键字

作用域:变量起作用的范围
1局部变量:定义在函数体内(或复合语句)内的变量,只在一个区域内起作用;作用域是从定义行开始到函数体结束,形参x是一个局部变量,只是在该函数体内起作用;定义在函数体内的变量也是局部变量;定义在复合语句中的变量也是局部变量,该变量只在复合语句中起作用;环变量i是循环体内的局部变量。(耦合度低,低的更好)

2全局变量:定义在函数体外的变量;在整个程序中都起作用(耦合度高,现今基本不主张使用)一个全局变量不初始化时编译器将自动给它赋值为0;
当局部变量与全局变量同名时,全局变量不起作用。程序只使用它所在作用域内定义的局部变量

3、生命周期:从变量分配存储空间到存储空间被释放之间的时间

4、auto关键字 (默认)用于声明局部变量

** 5、 static 关键字:** 延长局部变量的声明周期,到整个程序结束;只会改变局部变量的生命周期,不会修改局部变量的作用域。 ios中static只能作用于.m文件中,在.h文件中会有警告

** import,class,include**
** @class** 一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还是需要使用#import。
而#import比起#include的好处就是不会引起重复包含

** const:**

const int a = 10;//变量a将变成只读变量。const能将变量a变成只读的。编译器预处理时已经将a改为10
const int *p2 = &b; const将指针指向的变量变成只读的
int* const p3 = &b;  指针指向不可改变,const将指针本身变成了只读的
const int * const p4 = &b;//将指针指向的内容及其本身都变为只读的
原文地址:https://www.cnblogs.com/xulinmei/p/7443880.html