上代码:java版public class Test { public static void main(String[] args) { int c = 1;
int d = (c++) + (c++) + (c++) + (c++) + (c++); // 1+2+3+4+5=15
int k = 1;
int m = (++k) + (++k) + (++k) + (++k) + (++k); // 2+3+4+5+6=20 System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("k="+k);
System.out.println("m="+m);
}}结果:c=6
d=15
k=6
m=20c版:
#include <stdio.h>void main(){ int c=1;
int d=(c++)+(c++)+(c++)+(c++)+(c++); //1*5=5 printf("c=%d,d=%d\n",c,d);
int k=1;
int m=(++k)+(++k)+(++k)+(++k)+(++k); //3*2+4+5+6=21 printf("k=%d,m=%d\n",k,m);}结果:
c=6,d=5
k=6,m=21
Press any key to continue
哦?看见了吧,后面的结果我都注释了结果的得来式子
int d = (c++) + (c++) + (c++) + (c++) + (c++); // 1+2+3+4+5=15
int k = 1;
int m = (++k) + (++k) + (++k) + (++k) + (++k); // 2+3+4+5+6=20 System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("k="+k);
System.out.println("m="+m);
}}结果:c=6
d=15
k=6
m=20c版:
#include <stdio.h>void main(){ int c=1;
int d=(c++)+(c++)+(c++)+(c++)+(c++); //1*5=5 printf("c=%d,d=%d\n",c,d);
int k=1;
int m=(++k)+(++k)+(++k)+(++k)+(++k); //3*2+4+5+6=21 printf("k=%d,m=%d\n",k,m);}结果:
c=6,d=5
k=6,m=21
Press any key to continue
哦?看见了吧,后面的结果我都注释了结果的得来式子
解决方案 »
- java数组问题
- 请高手帮我解释一下这反编译后的代码
- XFlashPlayer使用方法
- Java的菜鸟问题,实在找不到原因
- 急求:Struts-menu的背景色问题
- Class.forName(aa).newInstance 这样加载一个实现类,如果这个实现类有多个构造函数,是否都会调用呢?
- 关于java链表的一个问题(100分)
- 关于在editplus中编辑java
- cannot find win.com!!!高手救命!!!!
- 请教:如何添加一个button到frame中,并捕获其点击事件??
- java Calendar 转换成日期问题
- oracle10g中最大能存放一张多大的图片??????
turbo c++,visual c++和c++ builder还可能不一样呢
实际项目就别这样写吧。
多几行就行了。
我用cygwin编译的时候,出现了大量的警告:
..\main.c:5:35: warning: operation on 'c' may be undefined
..\main.c:5:35: warning: operation on 'c' may be undefined
..\main.c:5:35: warning: operation on 'c' may be undefined
..\main.c:5:35: warning: operation on 'c' may be undefined
..\main.c:8:34: warning: operation on 'k' may be undefined
..\main.c:8:34: warning: operation on 'k' may be undefined
..\main.c:8:34: warning: operation on 'k' may be undefined
..\main.c:8:34: warning: operation on 'k' may be undefined
但是又有不同:
java好像是一步一步的在做运算:
如:
int m = (++k) + (++k) + (++k) + (++k) + (++k); // 2+3+4+5+6=20应该遵循先加后用吧,第一个括号是2,第二个括号里的(++k)是3,但是他是得到一个新值加一个,依次类推就得上面的式子。而c里面:
int m=(++k)+(++k)+(++k)+(++k)+(++k); //3*2+4+5+6=21第一个括号是2,第二个括号是3,到了第二个括号,前面的结果是3*2 就是说先累加到3再乘以个数,很符合先加后用吧,后面第三个开始就是想java那样一个一个加,得到一个数加一个。刚刚学编程,很多东西都迷糊,有什么理解不对的望指正,也希望这个帖子能引起大家一点注意,仅此而已。