在Java、c语言等高级语言中自增和自减的作用基本一致,都是变量自身加一或减一。下面我只对自增进行说明,自减是类似的。

自增运算符(++),有两种书写形式,一个是在变量前: ++ num;

另一种在变量后 num++;他们的作用是一样的,但是优先级有很大的差别。

注:优先级代表该运算符执行的顺序,优先级越高越先执行。百度百科优先级表如下:

代码演示:

public class Test {

public static void main(String[] args) {

int a = 1;

int b = 0;

b = a++;//等价于 b=a; a++;

System.out.println("a=" + a + ",b=" + b);

System.out.println("=====华丽的分割线=====");

a = 1;//重新赋值为1

b = 0;//重新赋值为0

b = ++a;//等价于 a++;b = a;

System.out.println("a=" + a + ",b=" + b);

}

}

输出结果:

a=2,b=1

=====华丽的分割线=====

a=2,b=2

前加加优先级高先运算,后加加优先级低后运算;在c语言中这里的运算方式也是相同的。

===========================================================

差异:

Java代码:

public class Test {

public static void main(String[] args) {

int a = 1;

a = a++;

System.out.println(a);//输出结果为1

  }

}

C语言代码:

#include<stdio.h>

void main() {

int a = 1;

a = a++;

printf("%d",a);//输出结果为2

}

===============================================================

结论:

在Java中我们可样解释,后加加运算a先自身加一,然后再将没有运算的值赋给a,最终结果a==1。

在c语言中是按照优先级来运算的,后加加优先级低,a先赋值给a自身,然后a再加加,最终结果a==2;

Java 自增(++) 和 C语言中自增的区别的更多相关文章

  1. C、C++、C#、Java、php、python语言的内在特性及区别

    C.C++.C#.Java.PHP.Python语言的内在特性及区别: C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作 ...

  2. js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么

    js课程 3-10  js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...

  3. [转]c 语言中 %d,%lu等区别

    转载至:http://blog.sina.com.cn/s/blog_7d94c35c01019f96.html %d 有符号10进制整数 %ld 长整型 %hd短整型 %hu 无符号短整形 %u无符 ...

  4. c语言中 -> 的用法

    ->是一个整体,它是用于指向结构体. 1.换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到"->&quo ...

  5. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

  6. Java语言中的面向对象特性总结

    Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知 ...

  7. Java C# C语言中的占位符

    一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...

  8. JAVA语言中冒号的用法

    近来由于本人要介入android平台的开发,所以就买了本JAVA语言的书学习.学习一段时间来,我的感觉是谭浩强就是厉害,编写的<C编程语言>系列丛书不愧是经典.书中对C语言的介绍既系统又全 ...

  9. Java语言中的面向对象特性:封装、继承、多态,面向对象的基本思想(总结得不错)

    Java语言中的面向对象特性(总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知道jav ...

随机推荐

  1. java private修饰的类和变量

    private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类. 1.new对象 被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被priv ...

  2. java‘小秘密’系列(三)---HashMap

    java'小秘密'系列(三)---HashMap java基础系列 java'小秘密'系列(一)---String.StringBuffer.StringBuilder java'小秘密'系列(二)- ...

  3. Django连接mysql数据库

    1.app中对应的models.py配置相关表结构信息 from django.db import models class Question(models.Model): question_text ...

  4. Centos 6启动流程详解

    author:JevonWei 版权声明:原创作品 Centos6 启动流程 POST开机自检 当按下电源键后,会启动ROM芯片中的CMOS程序检查CPU.内存等硬件设备是否正常运行,CMOS中的程序 ...

  5. 浅谈CSS3动画的凌波微步--steps()

    背景 一日敲代码的我,得到一个需求:写一个10秒的倒计时. 用JavaScript定时器麻溜写完之后,恰好同事勇司机接完水.瞟了一眼,然后凑过来说,这个用CSS3也可以写,而且一行JavaScript ...

  6. main方法快速编辑日历

    public static void main(String[] args) { Scanner input=new Scanner (System.in); System.out.println(& ...

  7. web项目的发布

    1.我们将web项目布署到IIS上之前需要将我们的源码发布,然后再将发布后的代码布署到II上 2.首先在VS上打开我们的应用程序,在WEB层上右键->发布,会弹出一个"发布web&qu ...

  8. 整个IT界可分为13块大领域

    IT界可以划分为13个领域 Location: NanJing

  9. 【集美大学1411_助教博客】团队作业10——项目复审与事后分析(Beta版本)

    写在前面的话 软件工程课结束了,大家开心吗?是不是再也不用熬夜写代码了?如果这门课你真的熬夜写代码了,相信你一定有收获,如果这门课结束了你觉得是自己一个全新的开始,那么这门课的意义就实现了.团队作业全 ...

  10. 【Beta】Daily Scrum Meeting——Day7

    站立式会议照片 1.本次会议为第七次Meeting会议: 2.本次会议在中午12点,在陆大楼召开,本次会议为30分钟讨论今天要完成的任务以及接下来的任务安排. 燃尽图 每个人的工作分配 成 员 昨天已 ...