Objective-C 数据类型
在 Objective-C 编程语言中,数据类型是指用于声明不同类型的变量或函数的广泛系统。 变量的类型决定了它在存储中占用多少空间以及如何解释存储的位模式。
Objective-C 中的类型可以分为以下几类 −
序号 | 类型 & 描述 |
---|---|
1 | 基本类型 − 它们是算术类型,由两种类型组成:(a) 整数类型和 (b) 浮点类型。 |
2 | 枚举类型− 它们又是算术类型,用于定义在整个程序中只能分配特定离散整数值的变量。 |
3 | 类型 void − 类型说明符void 表示没有可用的值。 |
4 | 派生类型 − 它们包括 (a) 指针类型,(b) 数组类型,(c) 结构类型,(d) 联合类型和 (e) 函数类型。 |
数组类型和结构类型统称为聚合类型。 函数的类型指定了函数返回值的类型。 我们将在下一节中看到基本类型,而其他类型将在接下来的章节中介绍。
整数类型
下表为您提供了有关标准整数类型及其存储大小和取值范围的详细信息 −
类型 | 存储大小 | 取值范围 |
---|---|---|
char | 1字节 | -128 到 127 或 0 到 255 |
unsigned char | 1字节 | 0 到 255 |
signed char | 1字节 | -128 到 127 |
int | 2 或 4字节 | -32,768 至 32,767 或 -2,147,483,648 至 2,147,483,647 |
unsigned int | 2 或 4字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2字节 | -32,768 到 32,767 |
unsigned short | 2字节 | 0 到 65,535 |
long | 4字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4字节 | 0 到 4,294,967,295 |
要在特定平台上获取类型或变量的确切大小,可以使用 sizeof 运算符。表达式 sizeof(type) 产生对象或类型的存储大小(以字节为单位)。 以下是在任何机器上获取 int 类型大小的示例 −
#import <Foundation/Foundation.h> int main() { NSLog(@"Storage size for int : %d \n", sizeof(int)); return 0; }
当你编译并执行上面的程序时,它在 Linux 上产生如下结果 −
2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4
浮点类型
下表为您提供了有关标准浮点类型的详细信息,包括存储大小和值范围及其精度 −
类型 | 存储大小 | 取值范围 | 精度 |
---|---|---|---|
float | 4字节 | 1.2E-38到3.4E+38 | 6 位小数 |
double | 8字节 | 2.3E-308到1.7E+308 | 小数点后 15 位 |
long double | 10字节 | 3.4E-4932 到 1.1E+4932 | 19 位小数 |
头文件 float.h 定义了宏,允许您在程序中使用这些值和有关实数二进制表示的其他详细信息。 以下示例将打印 float 类型占用的存储空间及其范围值 −
#import <Foundation/Foundation.h> int main() { NSLog(@"Storage size for float : %d \n", sizeof(float)); return 0; }
当你编译并执行上面的程序时,它在 Linux 上产生如下结果 −
2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4
void 类型
void 类型指定没有可用的值。 用于三种情况 −
序号 | 类型和描述 |
---|---|
1 | 函数返回 void
在 Objective-C 中有很多函数不返回值,或者你可以说它们返回 void。 没有返回值的函数的返回类型为 void。 例如,void exit (int status); |
2 | 函数参数为 void
在 Objective-C 中有许多不接受任何参数的函数。 没有参数的函数可以接受为 void。 例如,int rand(void); |
此时您可能还不理解 void 类型,所以让我们继续,我们将在后续章节中介绍这些概念。