我刚刚运行了一遍 发现是16 可是为什么不是15呢?
追答这个问为什么,的确很淡疼!
这个是其编译器设计的原理,具体的要去理解这句话它是怎么去 解析的。
上面已经说到,是如何解析。前两个前加i变量的值都是5
++i ++i ++i
5 5 6 =16
还是说具体到为什么,我也不甚了解。去看看VC++6.0的编译原理相关书籍吧
个人认为,这种问题没必要去纠结,了解这么回事就O了
i=3,k=(++i)+(++i)+(++i) k的值为多少?
在windows系统VC++6.0下编译结果是,前两个i变值都是5,最后一个事是6, 5+5+6 = 16
...i = 3; k = (++i)+(++i)+(++i) 问k的值是多少? 很是纠结,请高手给出...
答案应该是:15 解释如下:++i表示先自加,然后再用i,也就是说i本来是3,经过++i之后,变成了4,在进行运算,所以k=(++i)+(++i)+(++i)=4+(++i)+(++i) ;i变成了4 所以第二个++i是以4可是的,经过自加后为5,在进行运算,则为4+5+(++i);第三个与第二个类似,是以5开始的,...
C语言:如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为?好评立刻。
对于k=(++i)+(++i)+(++i)这个表达式,先计算其中的++运算,即连续进行三次的自增1,即i=6,然后再计算这个表达式,即6+6+6=18
i=3,k=(i++)+(++i)+(i++) k=?
k=(i++)+(++i)+(i++);可以写成(或者说是这些语句的缩写):i=3;++i;k=i+i+i;i++;i++;k=12 全部执行完成后i=6
当i=3时,k=(++i)+(++i)+(++i)的值为多少
结果是15 k=(4)+(5)+(6)I的初始值是3,到第一个I,先自加,然后第一个括号的结果就是4,到第二个,I已经加一了,所以这会是4加1,得5,第而个括号结果是5,到第三个的时候I是5,再加一,就是6了,总和就是15~~
C语言 int i = 3, k = (++i) + (++i) + (i++);求大神解释为什么k = 15...
k=(++i);k=k+(++i);k=k+(i++),发现结果是k=14的,再来 k=(++i)+(++i);k=k+(i++);这是会发现在执行完第一行代码即就是k=(++i)+(++i)后k=10,也就是说多出来的一个1在这儿,问什么呢 打开对应的汇编语言会发现这个 系统将加号左面的i第一次自加后i=4 ...
...1,设i=3,k=(i++)+(i++)+(i++),k=?, 2.设i=3,j=4,k=i+++j,k=?_百...
int i=3;k=(++i)+(++i)+(++i);k=18,i=6 int i=3;k=(i++)+(i++)+(i++);k=9,i=6 i=6就不用说了,不管哪种,i都是加了三次,由3到最后的6 主要区别在于i++是先运算,后执行i=i+1 ++i是先执行i=i+1,后运算 所以第一个先执行了两次i=i+1后i=5,三个相加后...
请教一个C语言顺序点的问题
看下面两条语句:int i = 3;int k=(++i)+(++i)+(++i);执行后k的值是多少?不同的编译器有不同的结果,可能是16(gcc),也可能是18(vc)。为什么会这样呢?在C++标准中有一个很重要的概念:sequence points(顺序点)。原文定义如下:At certain specified points in the execution ...
C语言 22.如果i=3,则k=(++i)+(++i)+(i++)执行过后k的值为 ,i的值为...
i=6;不知道你是用什么编译器编译的,在VC++里面K=15;解释:++是自加运算符 自加运算符放在前面和后面优先级是不一样的,也即是说编译的时候,(1)先执行的是两个放在前面的自加运算,运算结果i=5;(2)计算K值,5+5+5=15 (3)执行放在后面的自加运算,运算结果i=6 ...
C语言中,如果i=3,则k=(i++)+(++i)+(i++)k的值是12,为什么我算出来都是...
i++,先使用i的值 再执行i=i+1 ++i,先执行i=i+1,再使用i的值 k=(i++)+(++i)+(i++)(i++) 最后为4 (++i)最后还是4 k=12