C语言中自增自减运算符如何最好的理解?

发布网友 发布时间:2022-04-06 07:32

我来回答

5个回答

懂视网 时间:2022-04-06 11:53

自增自减运算符存在于C/C++/C#/Java/Python等高级语言中,它的作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。

相较于这些语言中的+=和-=运算符,自增运算符更加简洁,且可以控制效果作用于运算之前还是之后,具有很大的便利性。

自增运算符 ++ 使操作数的值加1,其操作数必须为可变左值(可简单地理解为变量)。对于自增就是加1这一点,Eric想大家都不会有什么疑问。

++ 可以置于操作数前面,也可以放在后面,如:

++i;
  i++ ;
  ++i表示,i自增1后再参与其它运算;而i++ 则是i参与运算后,i的值再自增1。

自减运算符--与之类似,只不过是变加为减而已,故不重述。

下面我们通过一些实例来深入理解自增运算符的特性,自减运算符同理自悟

例:

int i=3;
  int j=4;
  i++;
  ++j;
  printf("%d, %d
", i, j);

对此,Eric想大家都不会有什么困惑,结果就是 4,5;下面我们来做一点小改动:

int i=3;
  int j=4;
  int a = i++;
  int b = ++j;
  printf("%d, %d
", a, b);

  结果又是多少呢?这里就开始体现出++前置与后置的区别了,结果是3,5。结合此例,我们回头再来理解一下“++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。很明显,a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j;
  则因先自增,然后再赋值,所以b,j均为5。

热心网友 时间:2022-04-06 09:01

从左往右看,比如++m,就是m的值先自加1,再调用,而m++就是先调用m,再自加1.
举个例子
#include <stdio.h>
main()
{
int a=1,b=1;
printf("%d,%d",++a,b++);
//输出就是2,1
}

a的值先自加1,再调用,而b++就是先调用m。
--m
m--
同样的意思,只不过是减法而已

热心网友 时间:2022-04-06 10:19

假如m=3;
t=++m;
当电脑执行完这句时候,t=4,m=4; “++”在前表示先自增再赋值,

假如m=3;
t=m++;
当电脑执行完这句时候,t=3,m=4; “++”在后表示后自增,先赋值。

“--”同理,
希望对你有帮助

热心网友 时间:2022-04-06 11:54

++m 就是在使用前加1
m++ 就是在使用后加1

--m和m-- 道理一样的

热心网友 时间:2022-04-06 13:45

考试才需要搞懂的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com