新起点
增值和减值操作符
2020-06-14 21:56:50

在多数指令式编程语言中,增值和减值操作符指的是一类单目操作符,这些操作符相应地增加或减少其操作数的值。以C语言为例,“++”“--”操作符分别为增值操作符和减值操作符。

增值和减值操作符的操作数可以为整型、字符或者指针等,准确地说,这些操作符只要求其操作数必须为一个左值,也就是要求操作数必须为一个可以用在赋值符号“=”左边的表达式。

  int i = 1;      //运行完这条语句,i被赋值为1  int j = ++i;    //运行完这条语句,i的值增了1变为2,而j的值为“++i”这个表达式的值为2  --j;            //运行完这条语句,j的值减了1变为1,表达式“--j”的值为1但被抛弃
  • 后缀形式的++和--操作符。后缀形式的++和--操作符出现在操作数的后面,应用了这种形式后,操作数本身会相应的增加或减少。同时,表达式的值为操作数增加或减少前的值。用法如下所示:
  int i = 5;      //运行完这条语句,i被赋值为5  int j = i++;    //运行完这条语句,i的值增了1变为6,而j的值为“i++”这个表达式的值为5  j--;            //运行完这条语句,j的值减了1变为4,表达式“j--”的值为5但被抛弃

原理(C语言)

对一个操作数应用增值或减值操作符,抽象来说将会创建一份操作数的拷贝,而创建拷贝的时间则根据操作符是前缀形式还是后缀形式来决定。所以使用这种操作符的表达式,实际用到的正是这份拷贝而不是操作数本身。所以编译器并不允许如i++ = 2;这样的语句出现。

网站公告: