tghk.net
当前位置:首页>>关于P=(i++)+(i++)+(i++)怎么理解的资料>>

P=(i++)+(i++)+(i++)怎么理解

这是不好的用法,属于Unspecified Behavior operator+的两个参数参与运算时,对left operand和right operand的求值顺序,标准没有进行严格定义,所以最终结果取决于相关编译器实现,因而在不同环境下会出现不同的结果 至于你说的那个三个i相加后...

p=15是因为它是先取值再自加1的,所以是5+5+5=15,运算完之后i自加到8 q在不同编译器会出来不同的结果,VC6.0是22,VS2010是24。 对于VC6.0来说,它的运算顺序是:q=((++j)+(++j)) + (++j) ,也就是先算前两个++j,然后再算加法,所以就是7+7+8

例如i=1;结果p=3,i=4; i++;为后加。即P=i+i+i=3; 接着执行i++。所以i=4;

如果是C的话,就这么理解 将i初始化为0,当 i 小于 p->n - 1 时运行循环中语句,最后再对i+1。 p是一个指向结构指针,结构体包含 n 这个成员数据。

答:因为 = 的结合方向是从右到左,i++ 是在使用 i 的值后再自加1,++j 是在 j 自加1后再使用其值。所以在 p=(i++)+(i++)+(i++); 语句中,先使用最右边 i=5 的值后再自加1,使得 i=6,接着使用中间的 i=6 即 5+6=11 后再自加1,使得 i=7,最后使...

p的值可以确定是15(因为是先使用i的值再把i+1三次),i和j也可以确定都是是8(因为都自增了三次),但是q的值受编译器的运算顺序影响,值不确定(因为你不能保证j的值在运算的式子里是什么时候自增了,里面没有一个顺序点)。 这样子的题目不应...

怎么会呢?它们是前缀增1符,先增1再运算,先做两次++i,i就成7了;从左至右计算,把前两个式子加起来放在一个临时变量中,比如A中,它就等于14;然后再与第三个式子相加,i又要增1成为8,可是这一次不能给A增了,所以是14+8=22。不过这与你使用...

这个你写下就知道了 其实 $("div p:eq("+i+")").text() 等价于 $("div p:eq(0)").text(); $("div p:eq(1)").text(); $("div p:eq(2)").text(); $("div p:eq(3)").text(); ... 只是把其中有规律的东西抽出为变量而已。 Jquery是建立在js基础上的...

建议在f函数中 加入 printf("%d,%d\n",a,b) ; 观测 传入的值。。。 p=f(i,++i); 你老师应该说过 先++,再执行 所以他等于 i++之后再调用的函数f被传入的i 都是3.。所以相等,所以为0. 扩展的讲一下。。p=f(i,i++); 如果是这样的话,为什么是1呢...

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