首页 > 操作系统 > Linux专区 > 为什么运行结果是这样?
2007
07-10

为什么运行结果是这样?

为什么int a=5;
   a=(a–)+3;
   printf(“a=%d”,a); 运行结果是a=7
  
   而int a=5;
   printf(“a=(a–)+3=%d”,a=(a–)+3);运行结果是a=(a–)+3)=8


为什么运行结果是这样?》有 3 条评论

  1. xstar 说:

    a = (a–)+3;
    包含了下面两条语句
    a = a + 3;
    a–;这句在上面那个运算结束后执行。

    所以在
    printf(“a=(a–)+3=%d”,a=(a–)+3);
    句中输出的是8;
    而在这句运算后,a=7;

    这个和while( a[i++] == ‘\0′ );原理一样;

  2. amen 说:

    [QUOTE=xstar]a = (a–)+3;
    包含了下面两条语句
    a = a + 3;
    a–;这句在上面那个运算结束后执行。

    所以在
    printf(“a=(a–)+3=%d”,a=(a–)+3);
    句中输出的是8;
    而在这句运算后,a=7;

    这个和while( a[i++] == ‘\0′ );原理一样;[/QUOTE]

留下一个回复