zoukankan      html  css  js  c++  java
  • object-c中的int NSInteger NSUInteger NSNumber辨析

    object-c中的int NSInteger NSUInteger NSNumber辨析

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            /*
             int NSInteger NSUInteger的区别
             1.这三个都是基本类型,声明的时候都不带*号
             2.int和后两者的区别是,用int声明的时候要考虑机型,在32位机里是int类型,在64位里就有可能是long型,而用后两者后,就不用考虑这个问题了,他们会自动判别
             3.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。
             */
            //1.声明一个int型
            int num1=1;
            NSLog(@"%i",num1);
            //2.声明一个NSInteger型
            NSInteger num2=2;
            NSLog(@"%li",num2);
            //3.声明一个NSUInteger型
            NSUInteger num3=3;
            NSLog(@"%li",num3);
            /*
             基本类型和NSNumber的区别
             1.NSNumber是一个类
             2.NSNumber可以将基本数字类型转化为对象,从而可以调用NSNumber中的相关方法
             */
            //4.声明一个NSNumber (将int型转化为NSNumber型)
            NSNumber *num4=[NSNumber numberWithInt:num1];
            NSNumber *num5=[NSNumber numberWithInt:num2];
            NSLog(@"%@",num4);
            //5.将NSNumber型转化为int型
            int num6=[num4 intValue];
            NSLog(@"%i",num6);
            //6.不同类型之间的相加
            /*
             1.基本类型之间有时可以直接相加(比如int型和NSInteger型,结果为long型)
             2.基本类型和NSNumber不可以直接相加
             3.NSNumber和NSNumber 不可以直接相加,须先转化为基本类型再相加
             */
            NSLog(@"%li",num3+num1);
    
        }
        return 0;
    }
    
  • 相关阅读:
    无题
    使用git clone 出现 Permission denied 解决办法
    为什么要用BigDecimal
    FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
    版本管理规范
    Intellij Idea 常用快捷键
    AI学习资源
    Python图谱
    网站架构演化历程
    微服务系列
  • 原文地址:https://www.cnblogs.com/frankltf/p/6868505.html
Copyright © 2011-2022 走看看