编程语言中的增量和减量运算符

评论(2)

不知道你是否也遇到过一样的困扰,就是经常容易被程序里变量 ++ 和 — 搞的糊里糊涂的,轮到自己用的时候,总是不知道在什么时候该用(以下举例均按照C++语言中变量的命名方法)a++ ,什么时候该用 ++a,好吧如果你是高手欢迎你来指正、拍砖甚至是鄙视,如果你也糊涂那么请你往下看。
本文主要讲解编程语言中的增量、减量运算符的本质和用法,以消除程序初学者对于编程语言中增量、减量运算符的一些误解。

 

何为增量、减量运算符

以下以C++语言代码示例,当然原理也同样适用于其他编程语言,如:php javascript 等,需注意的是要讲变量名称做以下修改。

int a = 1;
a++;
++a;
a--;
--a;

 


其实,此处无声胜有声的,不用多解释,

  1. 里面的 ++ (哥,这是两个加号,不是草字头)就是增量运算符
  2. 里面的 — (这是两个减号,不是破折号)便是减量运算符

增量和减量运算符主要作用是为变量 +1 或者 -1,目前来看非指针的编程语言主要用在编程中的遍历、循环、计数上,而指针类编程语言还有一个更大的用处就是,拨动指针前移或者后移。

增量、减量运算详解


int a = 1;
int b(0); 
b = a++;
//该语句结束后 b = 1 , a = 2
b = ++a;
//该语句结束后 b = 3 , a = 3
b = a--;
//该语句结束后 b = 3 , a = 2
b = --a;
//该语句结束后 b = 2 , a = 2

运算符在前还是在后的区别在于,先进行运算还是先取到值,
下面以增量为例,减量原理相同,


int a = 1;
int b(0); 
b = a++;
// 该语句实际上可以写作以下两行:
// b = a; 
// a = a + 1;
// 所以,该语句结束后 b = 1 , a = 2
 
b = ++a;
// 该语句实际上可以写作
// b = a + 1; 
// a = a + 1;
// 所以,该语句结束后 b = 3, a = 3

虽然这种做法在非指针类的编程语言中,容易让人感觉比较蛋疼,但在指针类语言中却是十分实用,这也就是为什么我用C++来举例,而不是用PHP来举例,因为就我目前的知识水平来看,还是C++中使用的比较多,而PHP中大都使用$i++,来进行遍历、循环的跳转,在C++中这两种写法如果用在数组指针中,直接关系到是用当前元素运算还是用下一个元素进行运算、运算后是否进行指针的下一元素的跳转。

PHP 中的增量、减量运算(自增、自减运算)

下面给出一个简单的php描述示例。

执行语句前 执行语句前
$b $a $b $a
0 1 0 1
执行语句后 $b=$a++ 执行语句后 $b=++$a
1 2 2 2

总 结

这世上众多编程语言,归根结底都要由汇编编译成机器语言,虽然实现的功能有所差别,效率有快有慢,但基本原理也都大同小异,系统地学好了一门语言,将会对你的编程之路有很大帮助。





  1. 对我来说,太高深了些

  2. 不懂啊