科创网络开发有限公司 2016-06-23 00:43 采纳率: 100%
浏览 1382
已采纳

c#中自增与自减运算怎么理解?

using System;

namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 21;
int b = 10;
int c;

        c = a + b;
        Console.WriteLine("Line 1 - c 的值是 {0}", c);
        c = a - b;
        Console.WriteLine("Line 2 - c 的值是 {0}", c);
        c = a * b;
        Console.WriteLine("Line 3 - c 的值是 {0}", c);
        c = a / b;
        Console.WriteLine("Line 4 - c 的值是 {0}", c);
        c = a % b;
        Console.WriteLine("Line 5 - c 的值是 {0}", c);
        c = a++;
        Console.WriteLine("Line 6 - c 的值是 {0}", c);
        c = a--;
        Console.WriteLine("Line 7 - c 的值是 {0}", c);
        Console.ReadLine();
    }
}

}

运行结果为:
Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22

为什么:line6-c的值是21而不是22
line7-c的值是22而不是20

  • 写回答

3条回答 默认 最新

  • herozhangbz 2016-06-23 00:56
    关注

    a++和a--是先赋值后运算。++a和--a是先运算后赋值。后面那几行相当于

             c = a;//c=21
                    a=a+1;//a=22
            Console.WriteLine("Line 6 - c 的值是 {0}", c);//输出21
            c = a//c=22,因为a=22
                    a=a-1;//a=21
            Console.WriteLine("Line 7 - c 的值是 {0}", c);//输出22
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决