本文章是一段c语言小程序,用printf()函数一起输出i、i++和++i,分别在gcc和vc中执行的不同结果
我的运行环境是:
操作系统:Fedora release 8 (Werewolf)
内核版本: 2.6.23.1-42.fc8
gcc 版本: 4.1.2
以及VC6.0
1----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d i=%d i=%d/n",i,i,i);
return 0;
}
gcc输出结果:i=1 i=1 i=1
VC6.0输出结果:i=1 i=1 i=1
2-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d i=%d i++=%d/n",i,i,i++);
return 0;
}
gcc输出结果:i=2 i=2 i++=1
VC6.0输出结果:i=1 i=1 i++=1
3-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d i=%d ++i=%d/n",i,i,++i);
return 0;
}
gcc输出结果:i=2 i=2 ++i=2
VC6.0输出结果:i=2 i=2 ++i=2
4-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d i++=%d i=%d/n",i,i++,i);
return 0;
}
gcc输出结果:i=2 i++=1 i=2
VC6.0输出结果:i=1 i++=1 i=1
5-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d i++=%d i++=%d/n",i,i++,i++);
return 0;
}
gcc输出结果:i=3 i++=2 i++=1
VC6.0输出结果:i=1 i++=1 i++=1
6-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d i++=%d ++i=%d/n",i,i++,++i);
return 0;
}
gcc输出结果:i=3 i++=2 ++i=3
VC6.0输出结果:i=2 i++=2 ++i=2
7-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d ++i=%d i=%d/n",i,++i,i);
return 0;
}
gcc输出结果:i=2 ++i=2 i=2
VC6.0输出结果:i=2 ++i=2 i=1
8-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d ++i=%d i++=%d/n",i,++i,i++);
return 0;
}
gcc输出结果:i=3 ++i=3 i++=1
VC6.0输出结果:i=2 ++i=2 i++=1
9-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i=%d ++i=%d ++i=%d/n",i,++i,++i);
return 0;
}
gcc输出结果:i=3 ++i=3 ++i=3
VC6.0输出结果:i=3 ++i=3 ++i=2
10-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d i=%d i=%d/n",i++,i,i);
return 0;
}
gcc输出结果:i++=1 i=2 i=2
VC6.0输出结果:i++=1 i=1 i=1
11-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d i=%d i++=%d/n",i++,i,i++);
return 0;
}
gcc输出结果:i++=2 i=3 i++=1
VC6.0输出结果:i++=1 i=1 i++=1
12-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d i=%d ++i=%d/n",i++,i,++i);
return 0;
}
gcc输出结果:i++=2 i=3 ++i=3
VC6.0输出结果:i++=2 i=2 ++i=2
13-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d i++=%d i=%d/n",i++,i++,i);
return 0;
}
gcc输出结果:i++=2 i++=1 i=3
VC6.0输出结果:i++=1 i++=1 i=1
14-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d i++=%d i++=%d/n",i++,i++,i++);
return 0;
}
gcc输出结果:i++=3 i++=2 i++=1
VC6.0输出结果:i++=1 i++=1 i++=1
15-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d i++=%d ++i=%d/n",i++,i++,++i);
return 0;
}
gcc输出结果:i++=3 i++=2 ++i=4
VC6.0输出结果:i++=2 i++=2 ++i=2
16-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d ++i=%d i=%d/n",i++,++i,i);
return 0;
}
gcc输出结果:i++=2 ++i=3 i=3
VC6.0输出结果:i++=2 ++i=2 i=1
17-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d ++i=%d i++=%d/n",i++,++i,i++);
return 0;
}
gcc输出结果:i++=3 ++i=4 i++=1
VC6.0输出结果:i++=2 ++i=2 i++=1
18-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("i++=%d ++i=%d ++i=%d/n",i++,++i,++i);
return 0;
}
gcc输出结果:i++=3 ++i=4 ++i=4
VC6.0输出结果:i++=3 ++i=3 ++i=2
19-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d i=%d i=%d/n",++i,i,i);
return 0;
}
gcc输出结果:++i=2 i=2 i=2
VC6.0输出结果:++i=2 i=1 i=1
20-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d i=%d i++=%d/n",++i,i,i++);
return 0;
}
gcc输出结果:++i=3 i=3 i++=1
VC6.0输出结果:++i=2 i=1 i++=1
21-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d i=%d ++i=%d/n",++i,i,++i);
return 0;
}
gcc输出结果:++i=3 i=3 ++i=3
VC6.0输出结果:++i=3 i=2 ++i=2
22-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d i++=%d i=%d/n",++i,i++,i);
return 0;
}
gcc输出结果:++i=3 i++=1 i=3
VC6.0输出结果:++i=2 i++=1 i=1
23-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d i++=%d i++=%d/n",++i,i++,i++);
return 0;
}
gcc输出结果:++i=4 i++=2 i++=1
VC6.0输出结果:++i=2 i++=1 i++=1
24-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d i++=%d ++i=%d/n",++i,i++,++i);
return 0;
}
gcc输出结果:++i=4 i++=2 ++i=4
VC6.0输出结果:++i=3 i++=2 ++i=2
25-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d ++i=%d i=%d/n",++i,++i,i);
return 0;
}
gcc输出结果:++i=3 ++i=3 i=3
VC6.0输出结果:++i=3 ++i=2 i=1
26-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d ++i=%d i++=%d/n",++i,++i,i++);
return 0;
}
gcc输出结果:++i=4 ++i=4 i++=1
VC6.0输出结果:++i=3 ++i=2 i++=1
27-----------------------------------------
#include<stdio.h>
int main()
{
int i=1;
printf("++i=%d ++i=%d ++i=%d/n",++i,++i,++i);
return 0;
}
gcc输出结果:++i=4 ++i=4 ++i=4
VC6.0输出结果:++i=4 ++i=3 ++i=2