Board logo

标题: 自增运算符(++),I++与++I的区别-1 [打印本页]

作者: 苹果也疯狂    时间: 2015-1-10 09:02     标题: 自增运算符(++),I++与++I的区别-1

1. 自增运算符(Increment Operator)

自增运算符 ++ 使操作数的值增 1,其操作数必须为可变左值(您可以简单地把可变左值理解为变量)。++ 可以置于操作数前面,也可以放在后面。例如:

++N ;

N++ ;

这两个语句产生的结果都是使 N 增 1,可以说没什么区别。使用以下语句得到的效果也是一样的:

N = N + 1 ;

尽管上面两个语句中,++ 前置和后置没有区别。但是,++ 前置和后置其实是有区别的。例如:

Int N = 1, Post, Pre;

Post = N++;

Pre = ++N;

对于 Post = N++; 这个语句,Post 得到 N 自增前的值,因为 N++ 的值为 1。也就是说,这个语句执行完后,Post 的值是 1,而 N 的值变成 2。而 Pre = ++N; 这个语句,Pre 得到 N 自增后的值,因为 ++N 的值为 3。也就是说,这个语句执行完后,Pre 的值是 3,N 的值也是 3。

总之,无论前置还是后值,++ 都会使其操作数的值增 1。不同的是,++ 前置时,自增表达式(如 ++N)的值等于其操作数自增后的值;++ 后置时,自增表达式(如 N++)的值等于其操作数自增前的值。例如:

Int N = 5, Post = 1, Pre = 1;

Pre = ++N + Pre; // 运算结束后 Pre 为 7,N 为 6

N = 5;

Post = N++ + Post; // 运算结束后 Post 为 6,N 为 6

上例中,++N 的值等于 N 自增后的值,即 6,所以 Pre 最后得到的值为 7。N++ 的值等于 N 自增前的值,即 5,所以 Post 最后得到的值为 6。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0