作者meya (落寞之心)
看板Examination
标题[课业] C程式问题
时间Thu Jan 3 19:02:31 2013
#include<stdio.h>
int x=0;
int main(){
int y=0;
printf("%d %d %d %d\n",x+1,x++,x+1,x);
printf("%d %d %d %d\n",y+1,y++,y+1,y);
return 0;
}
用gcc编译,以上会输出
2 0 1 0
2 0 1 1
(^这个)
我知道是从右至左执行,
但是x和y为什麽最後一个输出会不一样呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.241.154.233
1F:推 bobobola:好问题 01/03 20:02
2F:推 Mewra:不同compiler会有不同结果 01/03 21:21
3F:推 jcpf126:因为文法没规定他的顺序,所以各家Compile可以随意来 01/03 22:24
4F:推 garfield7321:x是全域变数,y是区域变数 01/04 12:07