现在的位置: 首页 > 综合 > 正文

oc 数据类型

2017年10月24日 ⁄ 综合 ⁄ 共 2406字 ⁄ 字号 评论关闭

数据类型、运算符和表达式在任何的计算机语言中都比较重要的,在面向对象的Objective-C语言中,除了常规的基本类型,还有对象类型等。运算符和表达式完全遵守C语言规范。 


数据类型

Objective-C数据类型可以分为:基本数据类型、对象类型和id类型。

基本数据类型有:intfloatdoublechar类型。

对象类型就是类或协议所声明的指针类型,例如:NSAutoreleasePool * pool,其中NSAutoreleasePool是一个类,NSAutoreleasePool
*
是它指针类型。

id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型,所以刚才的变量pool也可以声明为id
pool
。 

int类型

int类型代表整数,它的十六进制表示方式:0xFFED0D,在使用NSLog函数中格式化字符串使用%i表示十进制的整数,%o(字母o)表示8进制整数,%#x表示十六进制整数。它的取值范围是与设备相关的,无法一概而论。 

NSLog(@"integerVar = %i", integerVar);

float类型

float类型代表单精度浮点数,要表示float类型浮点数,可以在数值后面加上fF,例如:13.5ffloat浮点数也可以用科学计数法表示,例如:1.7e4NSLog函数中格式化字符串:%f表示浮点数,%e表示科学计数法,%g表示浮点数。 

NSLog(@“floatingVar = %f”, floatingVar);

double类型

double类型代表双精度浮点数,与float类型很相似,占用的字节空间double类型大体上是float类型的两倍。大多数计算机是用64位表示double类型。NSLog函数中格式化字符串,与float%f%e
%g相同。 

NSLog(@"doubleVar = %e", doubleVar);

char类型

char类型代表字符类型,存放点个字符,用单引号引用起来。例如:
'A',如果要表示一些特殊字符,要使用转义字符“\”。 

NSLog(@"charVar = %c", charVar);

数据类型实例 

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool =
[[NSAutoreleasePool alloc] init];
      int integerVar = 100;
      float floatingVar = 331.79;
      double doubleVar = 8.44e+11;
      char charVar = 'W';
      NSLog(@"integerVar = %i", integerVar);
      NSLog(@"floatingVar = %f", floatingVar);
      NSLog(@"doubleVar = %e", doubleVar);
      NSLog(@"doubleVar = %g", doubleVar);
      NSLog(@"charVar = %c", charVar);
      [pool drain];
    return 0;
}

数据类型限定词

Obejctive-C中数据类型可以在intfloatdoublechar类型前面加上限定词,限定词有:longlong
long
shortunsignedsigned,这些限定词从而增强了基本类型。 

• long int,在大部分计算机中代表32位整数,在整数后面加L(或l)表示,例如:long
int numberOfPoints =131071100L
,NSLog函数中格式化字符串使用%li表示;

• long long int可以指定更加宽泛的整数类型,保证变量至少64位宽度。NSLog函数中格式化字符串使用%lli表示;

• long double
,可以指定更加宽泛的double类型,要显示这个可以在尾部使用L(大小写)表示,1.234e+7LNSLog函数中格式化字符串使用%Lf%Le%Lg表示; 

• short int用来指定存放相对小的整数,一般是占用int类型的一半。大部分计算机是16位;

• unsigned int,告诉编译器只是接受整数,在数值之后放字母u(或U)表示,例如:0x00ffU;编写整数时候,可以将字母u(或U)和l(或L)组合起来,例如:20000UL;

• signed char,代表的字符与编译器有关,一般也作为无符合整数使用。 

布尔类型和枚举类型

Objective-C还有两种数据类型是以int类型在计算机内部存 储的,它们是:布尔类型和枚举类型。


布尔类型是_Bool(别名BOOL),取值范围10,其中1可以用TRUEYES表示,0可以用FALSENO表示。


枚举类型,如果需要定义一组相关常量,可以采用枚举类型,把这些常量定义成一个类型,例如游戏在上、下、左、右方向,可以枚举类型: 


enum direction {up,down,left,right};


其中up0始,down1,依次推加

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool =
         [[NSAutoreleasePool alloc] init];
      enum week {
            Mon, Tue, Wed, Thu, Fri, Sat, Sun
      };
      int days,aweek;
      NSLog(@"Enter week number : ");
      scanf("%i", &aweek);
      ... ...
    [pool drain];
    return 0;
}

说明

其中定义了week的枚举类型,函数scanf("%i", &aweek)是C中标准函数库,用于从终端读取键盘输入,%i是指定接收的类型,&aweek是传递aweek的地址给函数,便于接收键盘输入内容。 

【上篇】
【下篇】

抱歉!评论已关闭.