bshy.net
当前位置:首页>>关于j=(i++)*(++i)+(i––)*(––i)的资料>>

j=(i++)*(++i)+(i––)*(––i)

一般编译器是这样处理的,设置两个临时变量a、b,然后: a=(i)*(++i); b=(i)*(--i); j=a+b; i++; i--; 就是说如果i原来是3话,最后j==25。但并非所有编译器都这么处理,所以不同编译器常常会有不同结果。

i--*--i却=4是先执行i--,再执行--i,最后执行*,但由于i--的特殊性,开始i=3,i--时i暂不变,--i时i=2,此时注意,因为i值变了,在执行*时系统找i--时,找到i=2,所以相当于(2--)*2=4,之后再i=1。所以整个过程相当于,先执行--i,在执行*,...

是这样的:在c语言中++i的运算优先级高于i++和*,--i的运算优先级也是高于i--和*的,所以:(i++*++i+i--*--i)这个表达式是先开始执行++i的操作,那么i的值就变成4了,所以i++*++i就是实质4++*4=16,因为这个表达式是同一个,所以第一个i++还不...

你想知道什么?

前者循环3次,循环结束后i=3,j=1;后者i先循环一次i=1,然后执行j的循环,j循环4次,循环结束j=1,;接着再执行i的循环,i=2,然后执行j循环,j循环3次,循环结束j=2……依次再执行i循环,j循环。

此时的 j=6; 第一次循环 j=3; 第二次循环 j=5; 第三次循环 j=6;

这是个循环嵌套的程序结构 for(i=1; i

-i++=(-1)++=-1; 因为是i++,++在后面,所以在i++这句是在赋值之后才执行的. 选C.

先采纳,我立马回答

应该是18与21吧。 ++在后是先用再加,++在前是先加在用 所以 n = 5+6+7, m=6+7+8

网站首页 | 网站地图
All rights reserved Powered by www.bshy.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com