Objective-C学习笔记(六)——运算符之一元运算符

       OC中的运算符分为一元运算符,二元运算符和三元运算符,这和C语言是极为类似的。本篇文章主要来聊一聊OC中的一元运算符。一元运算符主要分为自加运算符和自减运算符。两者的思路是一样的,所以主要讨论自加  ++运算。下面分为几个代码片段来分析:

(1)代码一:

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        int a = 1;
        a++;//等价于   a=a+1;
        
        NSLog(@"a = %d",a);
    }
    return 0;
}

运行结果:

Objective-C学习笔记(六)——运算符之一元运算符_第1张图片


结果分析:a的初始值为1,自加一次后值为2,所以结果输出2.在这里a++;等价于 a=a+1;


(2)代码二:

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        int a = 1;
        a++;
        
        NSLog(@"a = %d",a++);
        NSLog(@"a = %d",a);
    }
    return 0;
}

运行结果:

Objective-C学习笔记(六)——运算符之一元运算符_第2张图片


结果分析:为什么第一个输出为2?不也是执行了a++,按道理来说应该是3才对啊?     这里就涉及到了++的特殊点。如果是a++,虽然等价于a=a+1;但是对于a值,是先使用,再增加的。

      所以第一个输出先使用a的值为2,然后在执行++,所以第二个输出等于3.


(3)代码三:

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        int a = 1;
        a++;
        
        NSLog(@"a = %d",++a);
        NSLog(@"a = %d",a);
    }
    return 0;
}

运行结果:

Objective-C学习笔记(六)——运算符之一元运算符_第3张图片


结果分析:这里要区别  a++和++a,    a++表示的是先使用a的值,再自增;++a表示的是先增加a的值,再使用a。

       所以在第一个输出中先增加了a的值,变为3,再进行输出,然后第二个输出a,值也就是3.  所以关键在于是“先加后用”,还是“先用后加”。自减--使用和++一样,也就是区分“先加后用”,还是“先用后减”。在此不再重复叙述。

你可能感兴趣的:(Objective-C)