c语言中定义i=5.q=(++i)+(++i)+(++i)+(++i).q为什么等于22啊我用的是vc++6.0求大神详细解答c语言中定义i=5.输出q=(++i)+(++i)+(++i),i怎么=8啊
q为什么等于22啊
对不起我多打一个
谢谢你的解释我懂啦嘿嘿
本回答被提问者采纳我说为什么是22
能解释一下吗谢谢
i=5,s=(++i)+(++i)+(++i)为什么等于22?
先从简单的说起吧,也就是i=5,s=(++i)+(++i);这个结果应该等于14而不是13,为什么呢?看一下下面的汇编代码(通过生成exe反汇编得到)(其中-4ebp是变量i在堆栈中地址,-8ebp是s的地址,eax是寄存器ax)movl $5, -4(%ebp) ;将i赋值为5 leal -4(%ebp), %eax;取i的地址到ax incl (...
请各位高手指点一下 已知i=5; q=(++i)+(++i)+(++i);输出q=?
对于写出(++i)+(++i)+(++i)表达式的C语言书籍作者们,我对你们已经忍无可忍了,这种书应该停止出版。
c语言设i=5,p=(++i)+(++i)+(++i)为什么等于22
i++是先执行整个表达式的值,再加1;++i是先加1后再执行整个表达式的。所以K的值为9,i的值为6。如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为 18 ,i的值为6
C语言问题 i=5 (++i)+(++i)+(++i)的值是多少?求详解瓦
是22,首先声明不同的编译器结果会不一样啊(当如计算a+b时,标准C没规定是先执行a还是先取b,目的就是让编译器设计者可以充分利用寄存器提高速度,故不推荐楼主再深入研究这些问题,因为没用)vc里是22啊,首先计算顺序是从左到右,所以先算++i+(++i),则先执行++i,再++i,此时i则变成7了...
是C语言、我好笨求解!就是i=5;j=(++i)+(++i)+(i++);然后输出等于i=8...
++i由于++前置,所以先自加再参与运算第一个++i后i变成6,然后第二个++i后i变成7,然后i++的时候由于后置,所以先参与运算,然后再自加,所以这个式子就变成了7+7+7=21,然后算完以后i再自加1,所以i就变成8了。
...i=5,k=(i++)+(i++)+(i++),k=(++i)+(++i)+(++i)的运算与区别?_百度...
i++先运算再让i自加1,++i先自加1再将i的值用于运算,就这区别还有就是比如k=(i++)+(i++)+(i++)这个语句在不同的系统中结果不一样,有的是让三个i的值先全为5即5+5+5加了过后再让i自加三次输出k值为15 i的值为8,有的系统下是5+6+7输出k值18 i的值8,编程中一定要尽量...
i=5 J=(++i)+(++i)+(i++) 怎么算 C语言中的
i=5意思是i的赋值是5,J=(++i)+(++i)+(i++) ++i是先求出i的值,i再+1,i++是先算i+1的值 我也是初学者,不对的话请谅解 如果需要补充的 请告诉我 我正在学习
main() { int i=5,j; j=(++i)+((++i)+(++i)+(++i))*2; printf("%d %d...
感想,我们到底是为了研究C语言呢,还是要研究编译器?感觉这种源代码不是用来阅读的,而是用来解谜。 决定了,以后学习C语言坚决抛弃++操作符。附:思考题,VC++6.0的debug模式中,在i=5的前提下,为什么 j = (++i) + (++i) + (i++) + (i++); \/\/ j = 28 j = (i++) + (i+...
为什么在c语言中,i=1;i=(++i)+(++i)+(++i)+(++i);得到
在C语言中,尝试写出i=1;i=(++i)+(++i)+(++i)+(++i);这样的代码,是严格禁止的。这种写法,就如同触碰了不该碰的电门,完全属于自寻死路的行为。这在C标准里被称为"未定义行为",这个术语实则传达了更为恶劣的态度:相关情况早已被充分理解并讨论,最终的决定是"不予理睬,任由后果自负"。...
C语言问题 i=5 (++i)+(++i)+(++i)的值是多少?求详解瓦
等式里面有++i,所有的i都自增1,有i++,等式里面i值不变,运算完后i变为i+1。我主要讲一下第三个,应该是18,有三个++i,所以每个i都是3+1+1+1=6,所以结果是18.