问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

自增、自减运算符

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

我来回答

4个回答

懂视网 时间: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

这样吧,我举个例子
i=1;
a=i++;
b=i++;
c=i++;
printf("%d%d%d%d",a,b,c,i);
结果为:a=1,b=2,c=3,i=4
解释:a=i++就是i先参与运算,在增加1,也就是先把i的值1赋给a,在加1,i的值变成2了
b=i++,先参与运算,在增加1,也就是先把i的值2赋给b(上一步,i的值变成2),在加1,i的值变成3了
b=i++,先参与运算,在增加1,也就是先把i的值3赋给c(上一步,i的值变成3),在加1,i的值变成4了
最后i的值是4
++i,又不一样,是先增加1,在赋值,下面给个例子:
main()
{
int i=8;
printf("%d\n",++i); /*….9….*/
printf("%d\n",--i); /*….8….*/
printf("%d\n",i++); /*….8….*/
printf("%d\n",i--); /*….9….*/
printf("%d\n",-i++); /*….-8….*/
printf("%d\n",-i--); /*….-9….*/
}
i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出-8之后再加1(为9),第7行输出-9之后再减1(为8)。
如果还是上面那个例子:
i=1;
a=++i;
b=++i;
c=++i;
printf("%d%d%d%d",a,b,c,i);
结果为:a=2,b=3,c=4,i=4

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

你的这条语句是要干什么他就是参与啥子运算,I自增一是指在执行下一条语句时他的值才增加一。比如a=i++;b=i++,i的初始值是1。第一条语句是要对a赋值,那么这里i参与的就是赋值运算,执行完成之后a的值是1,而b的值是2,因为b已经是下一条语句了

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

i++表示我要用i的值,先取i的当前值。用完了以后,我让i加1.
++i表示我要用i的值,用之前,先把i加1,再取出来用。
单独的i++和++i都表示将i加一次。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... C语言自增自减运算符用法 什么是自增运算,什么是自减运算 web在线客服系统的实现方案? 微信开发php怎么实现,一个关键字回复多个消息 求一个PHP+MYSQL写的在线客服代码要完整的 向高手求一个php在线客服系统,ECSHOP系统能用的。万分感谢! 如何用PHP做一个网站悬浮的客服窗口 求一php在线咨询代码,在网站点击咨询和QQ聊天类似的功能,不是QQ客服 php在线客服程序谁有啊?要好用一点的,免费的啊,给发个链接 php在线客服的问题 PHP的QQ在线客服代码 如何用php获取本网站的点击在线客服的用户信息? 网络在线客服源代码,有没有php实现的源代码?谢谢 PHP网站如何添加QQ在线客服代码? PHP写的,好用的免费的在线客服系统 PHP网站中加入QQ在线客服的方法 如何在php网站中添加在线客服 各位老鸟,能给一个php编写在线客服的思路吗?具体用到些什么技术,和函数,请明示,谢啦 php 如何处理屏蔽index of php都有哪些空白字符? C语言中自增自减运算符如何最好的理解? c语言中自增自减运算符。怎样理解? c语言中的 自增和自减运算符自学看不懂 自增自减运算的优先级是怎样的? C语言中自增自减运算符如何最好的理解 C语言的逻辑运算符与自增自减混合运算的规则 ++var和var++有什么区别(C语言自增自减详解) C语言 计算机语言 自增自减运算符 c语言关于自增自减运算的问题 关于java的自增自减运算符 processing自增自减运算符怎么用 python爬到的html乱码怎么解决 python爬虫抓取到的数据用网页打开时是乱码,怎么解决 用python抓取的网页保存后为什么乱码? python 乱码问题 Python3.6 想在文件中输入乱码怎么办 Python+requests 爬取网站遇到中文乱码怎么办 怎么解决中文网页HTML中,编码不一致问题(Python,BeautifulSoup) 用Python的BeautifulSoup解析网页时,里面的中文显示乱码,要怎样才能正常显示中文? python代码中文乱码怎么解决