美文网首页
int和NSInteger区别

int和NSInteger区别

作者: 雨燕oc | 来源:发表于2018-04-25 11:03 被阅读0次

查到c语言中,int和long的字节数是和操作系统指针所占位数相等。

但c语言中说,long的长度永远大于或等于int

objective-c里,苹果的官方文档中总是推荐用NSInteger

它和int有什么区别呢,stackoverflow这帮大神给了答案。

原来在苹果的api实现中,NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。

定义的代码类似于下:

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64

typedef long NSInteger;

typedef unsigned long NSUInteger;

#else

typedef int NSInteger;

typedef unsigned int NSUInteger;

#endif

总结:NSInteger与int的区别是NSInteger会根据系统的位数(32or64)自动选择int的最大数值(int or long)。

1、Integer默认值是null,而int默认值是0;

2、声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;
3、Integer是对象,用一个引用指向这个对象;而int是基本类型,直接存储数值。
Java两种数据类型分类:

原始数据类型,分为boolean、byte、in、char、long、short、double、float 。
引用数据类型 ,分为数组类、接口。

为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每 一个基本数据类型都引入了对应的包装类型,int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。

相关文章

  • int和NSInteger区别

    查到c语言中,int和long的字节数是和操作系统指针所占位数相等。 但c语言中说,long的长度永远大于或等于i...

  • int和NSInteger区别

    今天在困惑int和long的使用。 查到c语言中,int和long的字节数是和操作系统指针所占位数相等。 但c语言...

  • NSInteger 是什么

    先看源代码 int、 NSInteger、 NSUInteger、NSNumber之间的区别和联系int : 当使...

  • NSInteger,NSNumber,Int区别

    NSInteger和NSNumber 首先NSInteger和NSNumber两个没区别.NSInteger只是一...

  • NSInteger和NSNumber及int区别

    NSInteger和NSNumber 首先:NSInteger,NSNumber并没有什么关系,更不要想当然的以为...

  • int、NSInteger、NSUInteger

    int、NSInteger区别 NSInteger会自动识别当前设备系统是32位还是64位,自动选择int的最大数...

  • NSUInteger、NSInteger、int

    NSUInteger、 NSInteger 、 int int和NSInteger其实差不多,推荐使用NSInte...

  • int和NSInteger有什么区别?

    首先: 在c语言中,int和long的字节数是和操作系统指针所占位数相等; 但c语言中说,long的长度永远大于或...

  • 蓝鲸传媒

    1.int NSInteger 的区别,什么时候用?2.NSDictionary 和 NSArray 什么场景用这...

  • NSInteger和int的差别

    NSInteger和int的差别:NSInteger会根据系统的位数32or64,自动选择int的最大数值int ...

网友评论

      本文标题:int和NSInteger区别

      本文链接:https://www.haomeiwen.com/subject/rwmelftx.html