`
ttwang
  • 浏览: 333901 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

a = a+++b;到底该如何计算

 
阅读更多

#include<stdio.h>
void main()
{
    int a = 1,b = 2;
    a = a+++b;
    printf("%d\n",a);
}

是从后往前算,还是从前往后算,

VC 6.0 和 VS 2010 编译结果都是 4,也就是从后往前算。

分享到:
评论

相关推荐

    探讨C语言自增、自减运算符的应用.pdf

    b = (a++) + (a++) + (a++);”中,自增运算是后置式,其运算规则低于算术运算;因此,变量 a 本身先参与算术运算,即 b = 3 + 3 + 3 = 9,再按照“从右至左”的结合性进行自增运算,即 a++;a++;a++;最后,a 的值...

    C语言自增自减运算符深入剖析

    C语言的自增++,自减--运算符对于初学者来说一直都是个难题,甚至很多老手... c=(a++)+(a++)+(a++);  d=(++b)+(++b)+(++b);  printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);  }  结果是什么?

    C语言编程跳水高手.doc

    A++) { for (B = 1; B &lt;= 5; B++) { for (C = 1; C &lt;= 5; C++) { for (D = 1; D &lt;= 5; D++) { for (E = 1; E &lt;= 5; E++) { sum = 0; if ((B == 2 && A != 3) || (B != 2 && A == 3)) sum++; if ((B == 2 && ...

    C经典算法源程序\数组之螺旋数组

    a++; } void goright(int &m,int &b) { for(temp=1;temp&lt;=ROW;temp++) if(array[b ][temp]==0) array[b ][temp]=m++; b--; } void goup(int &m,int &c) { for(temp=ROW;temp&gt;0;temp--) if(array[temp][c...

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

    也就是说,如果在表达式中使用 `a++`,在表达式计算完成之前,`a` 的值不会改变。例如: ```c int a = 0; printf("Before: %d\n", a); // 输出:0 printf("After: %d\n", a++); // 输出:0,因为先返回a的值,...

    课程程序--螺旋距阵.cpp

    #include"stdio.h" #include"iostream.h" int array[11][11]; ...a++; } void goright(int &m,int &b) { for(temp=1;temp&lt;=ROW;temp++) if(array[b][temp]==0) array[b][temp]=m++; b--;

    前置++与后置++

    和a = b++;的结果不同。前者会先将b的值加1,然后将结果赋给a,而后者会先将b的原值赋给a,然后将b的值加1。 2. 在逗号表达式中的使用 在逗号表达式中,前置++与后置++的用法需要特别注意。例如,int a = 10; int ...

    期末考试试卷模板.docx

    c = a++b; // 错误,++b不存在 c = a+++b; // 错误,+++不存在 c = (a++) + (+b); // 正确,c=7 c = a+++++b; // 错误,+++++不存在 ``` - **解析**: - 后缀递增`a++`先使用后递增,而前缀递增`++a`先递增后...

    如此完美代码

    a++) { for (b = 2; b &lt; a; b++) { for (c = b; c &lt; a; c++) { for (d = c; d &lt; a; d++) { if (a * a * a == b * b * b + c * c * c + d * d * d) { printf("Cube=%d, Triple=(%d,%d,%d)\n", a, b, c, d); } ...

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

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

    C语言-水仙花数代码实现

    a++) for(b=0;b&lt;=9;b++) for(c=0;c&lt;=9;c++) for(d=0;d&lt;=9;d++) if((a*1000+b*100+c*10+d)*9==d*1000+c*100+b*10+a) printf("%d ",a*1000+b*100+c*10+d); } ``` 这两种方法与三位数的情况类似,只是遍历的是四...

    [详细完整版]计算机竞赛.txt

    A++) { for(B = 0;B &lt;= 1;B++) { for(C = 0;C &lt;= 1;C++) { for(D = 0;D &lt;= 1;D++) { for(E = 0;E &lt;= 1;E++) { int count = 0; if(A && B && !C "" !A && (B != C)) //A参加时,B也参加;B和C只有一个人参加; {...

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

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

    C语言实现小时候经常做的智力测试题

    a++){ for (b = 1; b &lt;= 5; b++){ for (c = 1; c &lt;= 5; c++){ for (d = 1; d &lt;= 5; d++){ for (e = 1; e &lt;= 5; e++){ if (((b == 1) + (a == 3) == 1) && ((b == 2) + (e == 4) == 1) && ((c == 1) + (d == 2)...

    函数的简单运算 ,初识操作符,计算数组.rar

    1运算符和表达式 C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具...注:表达式中出现连续两个运算符时最好用空格隔开,如a+++b要写成:a++ +b或a+ ++b。同一优先级的运算符,运算次序由结合方向所决定。

    中北大学阿尔法编程之蛮力与分治算法

    if(c&gt;a && a&gt;b && a+b+c==a*b*c) printf("%d%d%d\n",a,b,c); } ``` #### 3. 划船求人数问题 题目描述: 某年级同学集体去公园划船,如果每只船坐10人,则多出2个座位;如果每只船多坐2人,则可少租1只船。设计一...

    换钱问题

    a++) { for (b = 1; b ; b++) { for (c = 1; c ; c++) { // 检查是否满足金额和数量约束 if (a * 5 + b * 1 + c * 0.5 == 100 && a + b + c == 100) { // 打印符合条件的组合 printf("5元%d张\t1元%d张\t0.5...

    C语言中自加运算和自减运算的剖析.pdf

    int b = a++ + 1; 在执行完毕上述语句后,a的值将变为6,b的值将变为6。 自减运算符(Decrement Operator): 自减运算符是指将变量的值减1的操作符。自减运算符也可以分为前缀式和后缀式两种。 前缀式自减...

    简单C表达式的计算,看似简单,实际要求掌握的知识很多

    (3) 对于错误的输入(如有歧义的表达式,a+++b), 直接输出一行"expression error"即可。输入正确性校验,不作为主要评判标准(即可以给出错误答案)。但不应导致程序运行错误。 示例输入: a + b b - z a+b--+c++ c...

    c基础面试题“卡尔电气”

    a++:b++.a+b)的值是 B.8。 解释:首先计算 a&gt;b,即 5&gt;2,为真,则执行 a++,即 a=6。然后计算 b++,即 b=3。最后计算 a+b,即 6+3=9。 9. 设有如下程序段,下面描述中正确的是 C.循环体语句一次也不执行。 解释:...

Global site tag (gtag.js) - Google Analytics