环境:

ubuntu 13.04 32位

gcc version 4.7.3 

++i,i++

代码如下:

#include <stdio.h>

main()
{
    int i;
    //test assignment
    int j;
    i=0;
    printf("before i++  assignment,i:%d\n",i);
    j=i++;
    printf("after i++  assignment,i:%d j:%d\n",i,j);
    i=0;
    printf("before ++i  assignment,i:%d\n",i);
    j=++i;
    printf("after ++i  assignment,i:%d j:%d\n",i,j);
    //test if
    i=1;
    printf("before if:%d\n",i);
    if(i++){
        printf("in if:%d\n",i);
    }
    printf("out if:%d\n",i);
    //test for
    i=0;
    printf("before for:%d\n",i);
    for(;i<1;i++){
        printf("in for:%d\n",i);
    }
    printf("out for:%d\n",i);
}

结果如下:

before i++  assignment,i:0
after i++  assignment,i:1 j:0
before ++i  assignment,i:0
after ++i  assignment,i:1 j:1
before if:1
in if:2
out if:2
before for:0
in for:0
out for:1

分析:

自增运算符作为前缀和后缀的区别:

前缀指变量使用之前就已经获得了改变。后缀指变量在使用之后才会改变。

问题是:怎样才算是使用前,怎样才算是使用后?

 

 

相关文章:

  • 2021-12-26
  • 2021-12-27
  • 2021-08-24
  • 2021-09-17
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-03-07
  • 2022-01-22
  • 2021-11-11
  • 2021-09-23
  • 2022-12-23
  • 2021-05-02
相关资源
相似解决方案