(一)a++
在C语言或其它语言中,++符号表示“自加”,就是变量在原来的基础上加1。
例1:
1
2
|
a = 0; a++; |
则此时a的值为1。
同样的道理,--表示”自减”。
例2:
1
2
|
a = 100; a--; |
则此时a的值为99。
注意,程序语言里没有”自乘”和”自除”的概念。
验证程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h> int main() { int a = 0; // 给a赋值 a++; printf ( "After ++, a = %d\n" , a); a = 100; // 重新给a赋值 a--; printf ( "After --, a = %d\n" , a); return 0; } |
运行结果:
1
2
|
After ++, a = 1 After --, a = 99 |
(二)++a
除了a++表示自加外,++a也表示自加。同理--a表示自减
验证程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h> int main() { int a = 0; // 给a赋值 ++a; printf ( "After ++, a = %d\n" , a); a = 100; // 重新给a赋值 --a; printf ( "After --, a = %d\n" , a); return 0; } |
运行结果:
1
2
|
After ++, a = 1 After --, a = 99 |
(三)a++与++a的区别
既然a++与++a都是让a自加,那么二者是否完全一样呢?
先看一个程序:
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> int main() { int a = 0; printf ( "a = %d\n" , a++); printf ( "a = %d\n" , a); printf ( "a = %d\n" , ++a); printf ( "a = %d\n" , a); return 0; } |
运行结果:
a = 0
a = 1
a = 2
a = 2
从运行结果可以看出,a++和++a是有区别的:
a++是先读取a的值,再让a的值增加1;
++a是先让a的值增加1,再读取a的值。
原文链接:http://www.jianshu.com/p/de743ba1fd81