同是这段程序:
#include <stdio.h>
void main()
{
int x=5;
int y;
printf("%d\n",x++*x++);
x=5;
printf("%d\n",++x*++x);
printf("%d\n",x);
}
在Tc下输出如下:
30
42
7
在Gcc下输出如下:
25
49
7
神奇了是吗?找了好久,这是编译器的规则问题。至今无法解答,请看到此文章的高手指点一下,给我讲解一下,小弟在此不胜感激!
同是这段程序:
#include <stdio.h>
void main()
{
int x=5;
int y;
printf("%d\n",x++*x++);
x=5;
printf("%d\n",++x*++x);
printf("%d\n",x);
}
在Tc下输出如下:
30
42
7
在Gcc下输出如下:
25
49
7
神奇了是吗?找了好久,这是编译器的规则问题。至今无法解答,请看到此文章的高手指点一下,给我讲解一下,小弟在此不胜感激!