`

关于a++与++a区别

阅读更多

【前言】

    今天有学生问了一道面试题,关于a++和++a,知道区别。虽然之前讲过,但是他还是记混了。这里记录下,以后讲课重点强调

 

【主体】

a++为先输出a,然后递增→先输出后递增

var a=1;
console.log(a++);   //输出1

++a为先递增,然后输出→先递增后输出

var a=1;
console.log(++a);    //输出2

递减原理与之类似 

 

【拓展】

这里为了增强记忆,我也出一道题

var a = 1;
console.log(a++);
console.log(++a);

输出结果为多少呢?

理解不透彻的同学可能会认为是1 和 2,,,,,

但正确答案是输出 1 和 3

原因是:a++在输出后已经加了1次,所以++a时是在2的基础上加了1,所以是3

 

 

.

 

分享到:
评论

相关推荐

    详解a++和++a的区别

    以前我也是老搞不懂a++和++a的区别, 后来看了很多资料, 终于总结出来一条规律, 小白专用! 看完这个例子就懂了: 例1:$a = 8, 求 ++a + a++ – –a + a– + ++a得多少? 旧值: 8 9 10 9 8  ++a + a++ – –a...

    C语言菜鸟基础教程之a++与++a

    总的来说,理解 `a++` 和 `++a` 的区别是C语言编程的基础,特别是在处理循环、条件语句和复杂的表达式时。熟练掌握它们的用法可以避免逻辑错误,提高代码的可读性和效率。在编写代码时,根据需求选择合适的操作符,...

    前置++与后置++

    "前置++与后置++在C/C++中的应用" 本文主要讲述了前置++与后置++在C/C++编程语言中的应用,旨在帮助学习者们更好地理解前置++与后置++的用法。 一、前置++与后置++的基本概念 在C/C++中,有两种类型的自增运算符...

    趣谈C语言和JAVA中的++和--

    b = a++ + a++ + a++;`。根据“名前先取,名后先增”的原则,这里先取每个`a`的值,然后才执行自增操作。因此,`b`的最终值为9,而`a`的值变为6。另一示例 `b = (++a) + (++a) + (++a);`,这里先执行所有前置自增...

    期末考试试卷模板.docx

    - 后缀递增`++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; // 错误,+++不存在 ...

    试析C语言中的自增自减运算符.pdf

    这里的`a++`是后缀形式,所以`a`先用于加法运算,值为0,然后才增加到1。因此`b`的值也是1。 除了优先级和执行顺序,自增和自减运算符还与运算符的结合性有关。在遇到连续的多个自增或自减运算符时,编译器如何解析...

    嵌入式研发工程师面试试题(20180131183310).pdf

    15. a+++++b 的含义:在 C 中,a+++++b 的含义是将 a 自增 1 次,然后和 b 进行加法运算。 16. Bool 变量的 TRUE 和 FALSE 值的定义:在 C 中,Bool 变量的 TRUE 和 FALSE 值可以使用 enum 枚举类型来定义。 17. ...

    C语言中的自增自减运算符.pdf

    这使得 `a+b++` 等同于 `(a+b)+b++`,而 `a+++b` 实际上是 `(a++)+b`。另一方面,后缀运算符的优先级较低,如在 `a*b++` 中,`b` 的值会在乘法运算之后被增加。 对于逻辑运算,自增自减运算符与逻辑运算符(如 `&&`...

    c++常见面试题,面试必须

    - (A) `a += (a++);` - (B) `a += (++a);` - ((C) `(a++) += a;` - (D) `(++a) += (a++);` **解析**: - **(A) a += (a++);** - `a++` 先返回当前值再自增,所以先返回 4,然后 a 自增为 5。 - `a += 4` 相当于 ...

    计算机基础知识2.pdf

    2. 判断 ABCD 四个表达式是否正确, Correctness of expressions (A) a += (a++); (B) a += (++a); (C) (a++) += a; (D) (++a) += (a++); 由于 C 错误,左侧不是一个有效变量,不能赋值,需要改为 (++a) += a;。 3....

    腾讯2013实习生校园招聘笔试题(附答案 ).pdf

    2. **`#include <filename.h>` 与 `#include "filename.h"` 的区别** - 解析: `<filename.h>` 通常用于包含系统库或标准库的头文件,而 `"filename.h"` 用于包含用户自定义的头文件。 - `<filename.h>`: 查找路径...

    华为C++笔试题下载分享

    因此,`a`的初始值为4,所以`a += (a++)`相当于`a = a + a++`,最终`a`变为5。 - (B) `a += (++a)`:在这里,`++a`先执行,将`a`增加到5,然后`a +=`将`a`的值增加5,所以`a`变为10。 - (C) `(a++) += a;`:错误,...

    华为C&C++笔试题(附答案)

    (A) `a += (a++)`:此表达式中,先执行a++,a的值变为5,然后进行a+=5,所以a最终值为9。 (B) `a += (++a)`:首先执行++a,a的值变为6,然后进行a+=6,所以a最终值为12。但这个表达式可以简化为a=a+a,所以结果...

    华为C/C++类笔试/面试题

    `存在语法错误,因为等号左边的表达式`(a++)`不是一个有效的左值,无法进行赋值操作。正确的形式应该是`a++`或`++a`这样的形式。 - 最后,对于选项D,`(++a) += (a++);`中,首先`++a`会使a自增1变为5,然后将a的当前值(即...

    C语言 基础试题(C语言).pdf

    - **指针、数组与运算符优先级**:指针和数组在声明和使用上有显著区别,例如`int (*foo())[31]`声明`foo`是一个返回31个整数数组的函数,而`int (*foo[])()`声明`foo`是一个指针数组,每个元素是函数指针。...

    趋势科技招聘经典软件笔试题--C++

    - 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的...

    sizeof运算符的使用,自增和自减运算符的使用

    int result2 = (a++) + (b++); // 这里使用括号明确指定自增顺序,result2将是6 ``` 在2.cpp文件中,可能包含了使用`sizeof`、自增和自减运算符的示例代码,通过编译和运行这个程序,我们可以更直观地看到这些...

    程序员面试宝典题目总结

    ### 知识点总结 #### 1. C代码输出解析 **题目描述:** ```c #include int main(int argc, char* argv[]) ...- **A:** `a += (a++)`,先计算 `a++`,`a` 的值变为5,再执行 `a += 4`,最终 `a`...

Global site tag (gtag.js) - Google Analytics