Java 与 C 中++i使用的不同效果(C让人逻辑混乱啊)

原创 2004年10月01日 22:52:00
Java程序:
/**
 * 测试++i
 */
public class Test {
    public static void main(String[] args) {
        int i=3;
        i=(++i)+(++i);
        System.out.println("i="+i);
    }
}
输出结果为
i=9
我想很多人都会同意这是正确的。接下来我们看看下面的C程序:
#include <stdio.h>
main(){
 int i=3;
 i=++i+(++i);
 printf("i=%d",i);
}
看起来和上面的Java程序一样吧,可是结果是什么呢。呵呵,运行一下
i=10
想不通吧,可这时事实啊。
改写一下上面的程序:
#include <stdio.h>
main(){
 int i=3;
 i=++i+(i=i+10);
 printf("i=%d",i);
}
结果为28。
呵呵,我是看不懂啦,再想下去肯定会逻辑混乱的。
不知道喜欢C的人喜不喜欢C的这个特性。

C语言逻辑运算短路(与运算、或运算)

总结: “或”逻辑前面为1(true)就会发生短路。 “与”逻辑前面为0(true)就会发生短路...
  • rl529014
  • rl529014
  • 2016年04月23日 20:30
  • 2132

c语言中i++与++i的区别及运行效率

在c语言我们会经常把i++与++i弄混淆。 i++    是先使用,再自加(其自加是在遇到结束标志时才会进行) 即a = i;i=i+1; ++i    是先自加,再使用 即 i=i+1; a...
  • Mormont
  • Mormont
  • 2016年11月11日 19:39
  • 4751

1987年国际C语言混乱代码大赛获奖的一行代码

最近CoolShell博主做了一个很有意思的在线puzzle,这些谜题很有趣同时也有一定的难度。由于水平有限,我并没有通关,我觉得这些题还是很值得一做的,从中可以学到很多东西。 例如其中的第二题: ...
  • lisong694767315
  • lisong694767315
  • 2014年08月06日 18:11
  • 3131

C数组与java数组在内存中的区别

C数组:静态数组,数组一旦被定义后,占用的内存空间就是固定的,不能改变数组长度。 C有两个版本,C89和C99 在C89中,必须使用数值常量指明数组的长度,不能使用变量(不管变量有没有被初始化); 在...
  • ganxiaojieke
  • ganxiaojieke
  • 2017年09月14日 17:21
  • 228

C语言i++和++i的区别

i++和++i的区别虽然简单,还是记录一下吧!     【知识点】      1. 对于普通独立的语句,i++和++i是一样的,如:         i++; 等效于i=i+1;         +...
  • u013046097
  • u013046097
  • 2016年12月03日 11:09
  • 1993

C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别

 1.     C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^)。第一组是逻辑运算符,它的操作数是布尔型,而...
  • baishuwei
  • baishuwei
  • 2009年05月05日 13:40
  • 38195

关于java和c++中 i=i++结果不同的分析

学习过一门计算机语言的人一定知道j=i++的运算结果,整个表达式的值为i,而i的值变为i+1;那么i=i++又是一个什么情况呢?下面分别用java 和 c 两种语言来做个测试:   JAVA: ...
  • liuguangqiang
  • liuguangqiang
  • 2015年10月17日 14:55
  • 1313

c语言和java的区别

今晚读了一下c程序设计语言,这是一本经典书籍,发现C语言和java有很多是相同的,毕竟java是由c语言进化来的。我大概从我自己的思考来谈谈不同点1.c语言是面向过程,主要单位是函数,变量和函数的耦合...
  • u010321471
  • u010321471
  • 2015年10月10日 10:11
  • 4389

C语言的逻辑或(||)操作(31)

C语言的逻辑或操作:/**//************************************************************ Copyright (C), 1998-2006...
  • longronglin
  • longronglin
  • 2006年10月09日 18:10
  • 4216

Java程序与C语言的区别

Java和C语言虽有相同性,但两者也有一定的不同。Java程序是面向对象的一种简单、分布式 、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言它是面向对象而C语言是面向过程的,这是最大的...
  • mengyue3375
  • mengyue3375
  • 2015年03月19日 21:41
  • 1937
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 与 C 中++i使用的不同效果(C让人逻辑混乱啊)
举报原因:
原因补充:

(最多只允许输入30个字)