同事问到我这个基础问题,这里做下记录,方便查阅
1. Static
static 修饰变量
1. 局部的 static 变量
简单说就是局部的静态变量(存储在静态数据区),在哪一个代码块中声明,就只能在那里使用。
优点:因为变量存储于静态区域,所以会记录下上一次变量的数据。
2. 外部的 static 变量
不加static的外部(代码块{}之外的)变量,默认静态变量,作用域很广,加上static为了限制作用域为本文件有效
static 修饰函数
使用static用于函数定义时,使函数只在本文件内部有效,又叫作静态函数。不用担心与其他文件的同名函数产生干扰。
2. Const
const 修饰 变量 相当于只读,不能改变
NSString * const kk = @"测试2";
DLog(@"%@",kk);
kk = @"测试2-2";//这里开始报错,不能修改
const 修饰 指针 ,指向的内存地址值可变化
const NSString * jj = @"测试1";
DLog(@"%@",jj);
jj = @"测试1-1";
DLog(@"%@",jj);
这里的变量jj是可以改变值的