标量及修饰符

oc中标量类型

最基本形式的变量是标量,标量是一次只能存储一个值的变量。 

整数、浮点数和字符都是标量。标量有不同的预定义内存空间和可以存储的值的大小。在决定用什么类型定义变量之前应该 知道这些类型的限制。 提供了 NSInteger 和 NSUInteger 类型,它们可以根据我们的编译平台的架构自动在 32 位或 64 位之间转换。 

int unsigned int

float double

long long long

char

BOOL

NSInteger NSUInterger

 

 

特殊变量修饰符

除了变量类型和变量名之外,还有一些关键字用来修饰你声明的变量类型。其中最重要的修 饰关键字是你将在本书中看到的 static 和 const。 

正如我前面提到的,声明局部变量时,变量的内存通常在每次程序进入该局部变量的作用域 时分配并在离开时释放。这类存储称为自动存储,或者通过默认修饰符关键字 auto 修饰。 

static 关键字会在声明变量的时候分配内存,所以在程序运行期间只会分配一次内存。之后 在程序中访问该变量时,实际上都是在访问原先分配的内存。这一点很重要,因为这样你就可以指定一个局部变量来长期保存其中的值。这适用于存储创建时使用大量的资源,并且不常改变的局部 变量。代码清单 2-7 展示了如何在函数中使用 static 关键字来优化初始化变量之类代价高的操作。 

register 修饰符用来提示编译器所存储的数据将会经常被访问,因此适合存储在 CPU 的寄存器中。这个关 键字很少用到。 

 extern 该修饰符表示所定义的函数或声明的变量 引用了应用程序另一个编译单元中定义或者分配的实际变量或者函数。 

const 关键字同样会修改所声明变量的内存行为,但是这种情况下,变量是只读的。这意味着 13 

变量被初始化以后,它的值将不能改变。这在声明不能修改的变量(比如常量)时非常有用。 

 (来自:学好objecti-c)

posted @ 2015-04-11 19:56  偏未晚  阅读(124)  评论(0编辑  收藏  举报