永发信息网

关于c语言左右自增运算

答案:5  悬赏:80  手机版
解决时间 2021-11-10 02:49
关于c语言左右自增运算
最佳答案
C语言的前置++和后置++,称为自增运算符
如果单独写 自增运算符为一个语句,二者没有区别
++i; 和 i++; 都是让i+1赋值给i
但是如果把自增运算符写入到另外表达式中二者就有很大区别了。

例如
1、
i=5;
j=i++;此处表达式等价于“j=i;i=i+1;”两条表达式。
执行后i为6,j为5
2、
i=5;
j=++i;此处表达式等价于“i=i+1;j=i;”两条表达式。
执行后i为6,j为6
注:通过上述例子,可以看出运算顺序产生了区别,导致了输出结果产生不同。
全部回答
a++有返回值得,返回的是a+1之前的值,所以printf("%d\n",a++);就是0了
a++;是用了这个语句后a再加1
printf("%d\n",a++); 执行这个语句时a是0,执行完后a就加1
a++;执行完后这个语句后a变为1
printf("%d\n",a);这时a已经是1了
有不懂可以再问
a++,这个表达式的作用是先返回a的值,再将a++
而++a,这个表达式的作用是先将a++,在返回a的值,
也就是说

a=0;b=a++;执行这两句后,b=a的值(0),在将a++,即a的值为1,b的值为0
a=0;b=++a;执行这两句后,先将a++,再b=a的值(1),即a的值为1,b的值也为1

通常,可以这样记
a++,a在前面,所以先返回是原来a的值,在做+法。
++a,++在前面,所以先做加法,在返回值是原来a的值+1.
a++; 用的时候先把a的值取出来使用,之后在把a加1
++a; 先把a加1,再把a现在的值(加1后的值)取出来用

int a=0;
printf("%d\n",a++); //结果为0 printf打印a的时候先把a的值取出来,是0,打印0,之后a再加1

int a=0;
printf("%d\n",++a); //结果为1 a先加1,得1,再取a的值1,打印1

int a=0;
a++; //这里a加了1,由0变为1
printf("%d\n",a); //a=1,打印结果为1

再举个例子
int a=0;
printf("%d\n",a++); //打印 0
printf("%d\n",a++); //打印 1
printf("%d\n",a); //打印2
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
外邦人哥尼流是如何接受福音的
四十九日祭主题曲《有些罪恶不容消洗》的意思
囧与窘一样吗?
c4d白色半透明塑料材质参数怎么调,求救大神
姑娘,我为什么宁可偷偷摘下套子,也要逼你生
人类猫叫综合征特点
vivoy937怎么设4g,我出厂设置以后就变2g了。
一斤灰面烙饼够多少人吃?
钢玉万漏宝wb-03怎么使用?
2016年5月份在亚交所挂牌的企什么时间能上市
随州领结婚证要婚检吗,是强制性得吗
未成年人去香港怎么住酒店
谁帮我做个姓氏图片,我姓和!谢谢了!
肉蟹如何处理
我骗对象说我是处女,明天就要上床了,我到时
推荐资讯
老板老板,有100个胡萝卜吗
爱情公寓3丽萨坐在曾小贤的腿上是哪一集
电饭锅自带的白勺有黄斑怎么洗掉
我手机里面有个虾米音乐会员它有哪些优惠呢?
朋友微信只发了两个句号什么意思
铂金价格多少一克?
电脑怎么玩ios手游的龙珠激斗
边辊和托辊是一样的么?还有,怎样设计边辊?
我长得好丑,想死。
在哪里学手机维修好
我看够了别人的爱情 我也听够了别人的故事 我
升麻种子现在种植多少天发芽
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?