JAVA
public class Test {
public static void main(String[] args) {
int i = 1000;
int j = 2000;
int a = i++;
int b = ++j;
}
}
汇编
0: bipush 1000 //
2: istore_1 //设置 i=1000 index=1的本地变量
3: sipush 2000
6: istore_2 //设置j=2000; index=2的本地变量
7: iload_1 //把index=1的数据放入操作栈
8: iinc 1, 1 //把index=1的数据加1
11: istore_3 //把操作栈中数据赋值给a
12: iinc 2, 1 //把index=2的数据加1
15: iload_2 //把index=2的数据放入操作栈
16: istore 4 //把操作栈中数据赋值给b
区别:
a=i++ 表示先把i放入操作栈,后更新i在本地变量的值,最后把操作栈的值(没变动过)赋值给a
b=++i 表示先更新本地变量j,后放到操作栈中,再把操作栈中数据赋值给b
C
int main(void) {
int i = 1000;
int j = 100;
int a = i++;
int b = ++j;
}
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $16, %esp
movl $1000, -20(%ebp) //栈ebp-20位置的值为1000 表示i
movl $100, -16(%ebp) //栈ebp-16位置的值为2000 表示j
movl -20(%ebp), %eax //把栈ebp-20位置的值1000 放入eax
movl %eax, -12(%ebp) //把eax的值放入ebp-12 表示a
addl $1, -20(%ebp) //把栈ebp-20的值+1
addl $1, -16(%ebp) //把栈ebp-16的值+1
movl -16(%ebp), %eax //把栈ebp-16的值放入eax
movl %eax, -8(%ebp) //把eax的值放入栈ebp-8 表示b
addl $16, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
区别:
a=i++ 表示先把i的值赋给a,然后给i加1
a=++i 表示先把i的值加1,然后赋值给a
分享到:
相关推荐
本文将通过对比Java和C语言中的自增(`++`)和自减(`--`)运算符,探讨它们之间的区别,并通过实例程序帮助读者更好地理解这些概念。 #### Java与C语言中的自增自减运算符 在C语言和Java语言中,自增和自减运算符...
Java语言中的自增运算符(++)和自减运算符(--)是两个非常基础且独特的运算符,它们在编程中用于递增或递减变量的值。这两个运算符源自C语言,且Java语言中也使用了这两个运算符,并保留了它们的主要特性,但也有一些...
首先,让我们了解自增1(++)和自减1(--)的概念。在大多数编程语言中,如C、C++、Java、Python等,这两个操作符用于分别使变量的值增加1或减少1。例如,对于变量`num`,`num++`会将`num`的值增加1,而`num--`则会...
2. **自减操作符(--)**:与自增操作符类似,自减操作符用于将变量的值减少1,同样可以分为前缀自减和后缀自减两种形式。 #### 二、工作原理 1. **前缀操作**: - 前缀操作符会首先改变变量的值,然后再返回该...
在Java编程语言中,自增和自减运算符是编程中常见的操作,它们用于快速地增加或减少变量的值。自增和自减运算符在循环控制、算法优化以及简单的数学计算中扮演着重要角色。本篇文章将深入解析Java中的自增和自减...
### Java中的自增(++)和自减(--) 在Java编程语言中,自增(`++`)和自减(`--`)运算符是非常基础但又十分重要的概念。这两个运算符能够快速地改变变量的值,是编程中经常使用的工具之一。 #### 自增运算符(`++`...
在Java编程语言中,自增(++)和自减(--)运算符是非常常见的,它们用于增加或减少变量的值。这两个运算符分为前缀和后缀两种形式,它们的行为略有不同。 1. **自增运算符(++)** - **前缀自增**:例如 `++i`,先将...
在Java编程语言中,自增(++)和自减(-)运算符是两种常用的单目运算符,它们用于增加或减少变量的值。这两个运算符分为前缀式和后缀式,其行为有所不同。 1. 自增运算符(++): - 前缀式:`++i`,先将变量i的值加1,...
Java中的自增(++)和自减(--)运算符是编程中常见的操作,它们用于增加或减少变量的值。这两个运算符分为前缀形式和后缀形式,每种形式有不同的行为和效果。 1. 自增运算符(++): - 前缀形式:`++i`,首先将变量i的...
自增(++)和自减(-)运算符在编程语言中,特别是Java中,是非常基础且重要的概念。它们被用来修改变量的值,每次操作增加或减少1。这两个运算符分为前缀式和后缀式。 1. **自增(++)**: - 前缀式 `++i`:先将变量i的...
Java中的自增(++)和自减(--)运算符是编程中常见的操作,它们用于增加或减少变量的值。本文将通过一个具体的例子深入解析这两种运算符的工作原理。 首先,我们来看自增运算符`++`。它有两种用法:前缀形式`++变量`和...
这两个运算符的灵活性在于它们可以被放置在变量之前或之后,从而产生前置自增/自减和后置自增/自减的区别。 ##### 前置与后置的区别 - **前置自增/自减**:形式为 `++var` 或 `--var`。这种情况下,变量的值首先被...
在Java编程语言中,自增和自减运算符是编程中常见的操作,它们用于快速地增加或减少变量的值。自增和自减运算符在循环控制、算法优化以及简单的数学计算中扮演着重要角色。本示例将深入探讨这两个运算符的用法。 ...
程序实例中,通过分析变量的赋值、运算和自增自减操作,可以学习到Java中的顺序执行、赋值运算符、自增自减运算符以及条件判断的逻辑。例如,`n、`n=m`和`n>m`的判断,以及`x+=2`和`y-=3`这样的复合赋值运算。 总之...
Java中的自增自减运算符有两种形式:前缀和后缀。例如: ```java int a = 5; int b = a++; // 先赋值后自增,b 的值为 5 int c = ++a; // 先自增后赋值,c 的值为 7 ``` 前缀形式(如`++a`)会先增加变量的值然后...
源语言要求至少包含的语言成分如下: 数据类型至少包括char类型、int类型和float类型 基本运算至少包括算术运算、比较运算、自增自减运算和复合赋值运算 控制语句至少包括if语句和while语句 实验内容:完整可运行的...
题目中的表达式`a++*b+c*--d`在计算时会先计算d的自减,然后是a的自增,最终得出结果。 6. 标识符:有效的Java标识符必须以字母、下划线或美元符号开头,后续可以是字母、数字、下划线或美元符号。2_cugii不是一个...
与C++的指针不同,Java的引用不支持自增自减运算。此外,Java还有String类用于表示字符串,虽然不是基本数据类型,但在使用上类似于引用类型。 在Java中,常量分为整型常量(包括十进制、八进制、十六进制)、浮点...
1. **简单性**:相比 C 和 C++,Java 简化了许多复杂的概念,例如取消了指针、运算符重载等功能。 2. **面向对象**:Java 是一种完全的面向对象编程语言,支持封装、继承和多态等面向对象的核心概念。 3. **分布性**...
引用不仅表示对象的地址,还提供了对对象的一些元信息,不允许进行自增自减运算。 在实际编程中,我们会声明变量来存储数据,如`int data=10;`和`Boolean isAlived;`。Java的操作符与C语言相似,但不包含指针操作。...