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

来源:互联网 发布:cf手游刷枪永久枪软件 编辑:程序博客网 时间:2024/06/15 04:41

       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;}

运行结果:


结果分析: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;}

运行结果:


结果分析:为什么第一个输出为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;}

运行结果:


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

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

2 0