下列代码的运行结果 short i=65537; char int shortj= i+1; print("i=%

以下程序的运行结果是 。 #include &stdio.h& main(){ int i,j; for (i=4;i&=1;i--){_百度知道数据结构实验答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据结构实验答案
上传于||文档简介
&&数​据​结​构​的​实​验​答​案
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩59页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢1543人阅读
今天在百度知道上看到别人提的一个问题,主要是不明白i=i++运算结果,自己之前看过java关于++的细节,不过一时自己也解释不明白,就去查了下java语言规范,才恍然大悟:作文记之!&
首先一段代码:&
Java代码&&
public&static&void&main(String&[]&args){&&
&&&&&&&&int&i&=&0;&&
&&&&&&&&i=i++;&&
&&&&&&&&System.out.println(&i=&+i);&&
&&&&&&&&int&j&=&0;&&
&&&&&&&&j=i++;&&
&&&&&&&&System.out.print(&j=&+j+&&i=&+i);&&
运行结果:&
java语言规范里对与++是这样说的:The result of the postfix increment expression is not a variable, but a value.即:++表达式结果是个值,而不是变量。&
变量?值?&
这是java特殊的地方,对于这里,java有两个存储区,一个是暂存区(堆栈),一个是变量区,&
拿“j=i++(i和j初始为0) ”解释下,第一步,把i值存起来,有两个,暂存区:0,变量区:0;第二步:进行i++,i 暂存区还是0,变量区变为1了(也就是说进行完i++后,打印i的值,那么i值为1,打印的是变量的值,即变量区的值,为1没问题)。第三步:进行给j赋值,赋的是i++的值,i++的值是0!为什么呢?之前说了,他是个值,不是变量,那么i++运行完后i++的值就应该从暂存区去取,暂存区存的是0,那么他就是0。i=i++也能解释通了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:23148次
排名:千里之外
(1)(1)(1)(1)(4)(1)(2)(1)(3)(2)(1)java 九九乘法表中for(int i=1;i&=9;i++){ for(int j=1;j&=i;j++){。。。为什么j要小于等于i?即j&=i??_百度知道}

我要回帖

更多关于 c print short 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信