当前位置:编程学习 > C/C++ >>

遇到一个问题不解, int i = 0; int n; n=i+(++i); 输出n; 如果是C/C++程序,输出n为2, C#程序的话输出为2

追问:不好意思哈,我问题写错了,那个C#程序中输出的n为1,我不理解这个
答案:反汇编看一下你就知道了。
n = i + ( ++i );

会这样计算:
先计算 ++i ;
这时 i = 1
然后 i + i 
所以 n = 2
其他:变量。 这个主要是语言之间的小差异,如果是C/C++程序,则 n=i+(++i); 其实先求++i 得到i=1 之后再求n=1+1;所以n=2;
但是在C#中,是n=0+1 所以n=1,这个应该是左集合和右集合的差异。知道规则就行 

上一个:C语言语句求讲解,另外C语言课程设计答辩大概是怎么样的?
下一个:C语言中负号是属于字符吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,