早教吧作业答案频道 -->其他-->
关于i++++i的问题inti=5,j=5,p,q;p=(i++)+(i++)+(i++);q=(++j)+(++j)+(++j);这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q的值则不然,q
题目详情
关于i++ ++i的问题
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
这两个表达式前者我懂,后者不能理解,请大大们帮我理解下,讲细致些谢谢!
P=(i++)+(i++)+(i++) 等于 p=i+i+i=5+5+5=15 i自增三次故i=5+3=8, 这个我似乎还能理解一点, 后者这个q=(++j)+(++j)+(++j); 不太懂,请老师们帮助理解下,透彻些!谢谢
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
这两个表达式前者我懂,后者不能理解,请大大们帮我理解下,讲细致些谢谢!
P=(i++)+(i++)+(i++) 等于 p=i+i+i=5+5+5=15 i自增三次故i=5+3=8, 这个我似乎还能理解一点, 后者这个q=(++j)+(++j)+(++j); 不太懂,请老师们帮助理解下,透彻些!谢谢
▼优质解答
答案和解析
不管是几个++的表达式相加,你只要把它当作函数,i++相当于 int func1(){ int temp=i; i=i+1; return temp; } 而++i相当于 int func2(){ i=i+1; return i ;}也就是i++是返回自加之前的值,++i是返回自加之后的值。所以对于p=(i++)+(i++)+(i++),p=5+5+5=15,做完这个之后i开始自加,一共加了三次,i=8,但这个时候p的值已经算过了,所以p还是等于15;对于q=(++i)+(++i)+(++i),i首先自加,一共加了三次,此时i=8,然后在做p=i+i+i=8+8+8=24。不知道这样说你明白了么。
看了 关于i++++i的问题int...的网友还看了以下:
编写程序求解下述韩信点兵问题:有一对士兵,从1至5依次报数时,最后1人报1,;从1至6依次报数时, 2020-06-04 …
分数应用题2道(1)拉面店的师傅拉面条时,先把一根面条拉成1.5米,然后对折再拉长到1.5米,再对 2020-06-08 …
从正无穷到负无穷对1积分积分区间是正无穷到负无穷,然后对1积分,结果是什么呢 2020-06-14 …
兰州拉面的制作步骤是:将一个面团先搓成圆柱形面棍,长1.5米,然后对折拉长到1.5米,再对折拉长到 2020-06-21 …
一道有趣的数学题兰州拉面的制作方法:将一个面团现搓成圆柱形面棍,长1.5米,然后对折拉长到1.5米 2020-06-21 …
兰州拉面的制作步骤是:将一个面团先搓成圆柱形面棍,长1.5米,然后对折拉长到1.5米,再对折拉长到 2020-06-21 …
76除以5+24乘5分之1简便运算我算得是5分之76+5分之24约分之后也是20请问这样做对吗76 2020-07-19 …
76除以5+24乘5分之1简便运算我算得是5分之76+5分之24约分之后也是20请问这样做对吗76 2020-07-19 …
一般的骰子点数1的对面、前后左右都是点数几?2的对面是几?3的对面是几?4的对面是几?5的对面是几? 2020-11-25 …
某单位职工的工资经过5年翻了一番,按照同样的增长率,多少年后可以翻两番是不是设增长率为x则(1+x) 2020-11-30 …