学到现在如果对这个问题还有疑问,说明基础不够扎实,但是没有办法,既然感到疑惑,解惑的最好的方式就是上级实验一下了。如下代码:
public class TestPlus {
public static void main(String args[]){
int a= 1;
System.out.println("*******a++******");
print(a);
print(a++);
System.out.println(a);
System.out.println("*******++b******");
int b = 1;
print(b);
print(++b);
System.out.println(b);
}
public static void print(int t){
System.out.println(""+t);
}
}
***************************************
运行后结果是:
*******a++******
1
1
2
*******++b******
1
2
2
运行结果可以看出,只要有++不管是在前或者在后面,肯定是执行了+1的操作,但是,当在引用a++的时候,还是这时候却是原来的值,而引用++a的操作中是a+1的值。这就是却别。
分享到:
相关推荐
以前我也是老搞不懂a++和++a的区别, 后来看了很多资料, 终于总结出来一条规律, 小白专用! 看完这个例子就懂了: 例1:$a = 8, 求 ++a + a++ – –a + a– + ++a得多少? 旧值: 8 9 10 9 8 ++a + a++ – –a...
总的来说,理解 `a++` 和 `++a` 的区别是C语言编程的基础,特别是在处理循环、条件语句和复杂的表达式时。熟练掌握它们的用法可以避免逻辑错误,提高代码的可读性和效率。在编写代码时,根据需求选择合适的操作符,...
在C/C++中,有两种类型的自增运算符:前置++(++a)和后置++(a++)。这两种运算符的主要区别在于它们对变量的值的影响顺序。前置++会先将变量的值加1,然后返回新的值,而后置++会先返回变量的原值,然后将变量的值...
### 趣谈C语言和JAVA中的++和-- #### 引言 在计算机编程语言的学习过程中,`++`(自增)和`--`(自减)运算符是非常基础且重要的概念之一。无论是在C语言还是Java语言中,这两种运算符都有着广泛的用途,并且能够...
由于i++和++i在执行时机和返回值上的区别,它们在实际使用中也有所不同。特别是在赋值操作中,++i的返回值是变量自身,可以直接用于赋值。而i++的返回值是一个临时变量,这个临时变量并不是一个左值,所以不能对其...
- 后缀递增`++a`和前缀递增`a++`的区别。 - **题目示例**: ```cpp int a = 1, b = 5, c; c = a + b; // 正确,c=6 c = ++a + b; // 正确,c=8 c = a++b; // 错误,++b不存在 c = a+++b; // 错误,+++不存在 ...
15. a+++++b 的含义:在 C 中,a+++++b 的含义是将 a 自增 1 次,然后和 b 进行加法运算。 16. Bool 变量的 TRUE 和 FALSE 值的定义:在 C 中,Bool 变量的 TRUE 和 FALSE 值可以使用 enum 枚举类型来定义。 17. ...
这里的`a++`是后缀形式,所以`a`先用于加法运算,值为0,然后才增加到1。因此`b`的值也是1。 除了优先级和执行顺序,自增和自减运算符还与运算符的结合性有关。在遇到连续的多个自增或自减运算符时,编译器如何解析...
首先,自增自减运算符分为前缀形式(如 `++` 和 `--`)和后缀形式(如 `a++` 和 `a--`)。前缀运算符会先改变变量的值,然后返回新的值;而后缀运算符则是先返回变量的当前值,然后才改变变量的值。例如,如果有一个...
2. 判断 ABCD 四个表达式是否正确, Correctness of expressions (A) a += (a++); (B) a += (++a); (C) (a++) += a; (D) (++a) += (a++); 由于 C 错误,左侧不是一个有效变量,不能赋值,需要改为 (++a) += a;。 3....
(A) `a += (a++)`:此表达式中,先执行a++,a的值变为5,然后进行a+=5,所以a最终值为9。 (B) `a += (++a)`:首先执行++a,a的值变为6,然后进行a+=6,所以a最终值为12。但这个表达式可以简化为a=a+a,所以结果...
- (A) `a += (a++);` - (B) `a += (++a);` - ((C) `(a++) += a;` - (D) `(++a) += (a++);` **解析**: - **(A) a += (a++);** - `a++` 先返回当前值再自增,所以先返回 4,然后 a 自增为 5。 - `a += 4` 相当于 ...
- **指针、数组与运算符优先级**:指针和数组在声明和使用上有显著区别,例如`int (*foo())[31]`声明`foo`是一个返回31个整数数组的函数,而`int (*foo[])()`声明`foo`是一个指针数组,每个元素是函数指针。...
int result2 = (a++) + (b++); // 这里使用括号明确指定自增顺序,result2将是6 ``` 在2.cpp文件中,可能包含了使用`sizeof`、自增和自减运算符的示例代码,通过编译和运行这个程序,我们可以更直观地看到这些...
`存在语法错误,因为等号左边的表达式`(a++)`不是一个有效的左值,无法进行赋值操作。正确的形式应该是`a++`或`++a`这样的形式。 - 最后,对于选项D,`(++a) += (a++);`中,首先`++a`会使a自增1变为5,然后将a的当前值(即...
题目要求分析四个表达式 `(A) a+=(a++); (B) a+=(++a); (C) (a++)+=a; (D) (++a)+=(a++);` 在 `int a = 4;` 的初始条件下,判断这些表达式的正确性,并给出修改后的表达式以及每个表达式执行后 `a` 的值。 1. **...
因此,`a`的初始值为4,所以`a += (a++)`相当于`a = a + a++`,最终`a`变为5。 - (B) `a += (++a)`:在这里,`++a`先执行,将`a`增加到5,然后`a +=`将`a`的值增加5,所以`a`变为10。 - (C) `(a++) += a;`:错误,...
- A: a += (a++) 结果为9,a的值为5。 - B: a += (++a) 结果为10,a的值为6。 - C: (a++) += a; 错误,左侧不是一个有效的左值。 - D: (++a) += (a++); 改为:(a++) += a; 结果为11,a的值为7。 2. sizeof的...