您的位置:首页 > 其它

关于编译器编译顺序的一个小问题...

2009-02-01 00:31 260 查看
int t;

char buf[]={"abc"};

for(t=0;buf[t]!='\0';t++)

printf("%d ",buf[t]);

printf("\n");

t=0;

printf("%d %d %d",buf[t],buf[++t],buf[++t]);
想说明一个简单的问题,最后一行代码往往不能达到想要的效果,至少在我的g++下面不能。

原因在于编译器在编译的时候不一定是按照从左到右的顺序处理,比如,g++是按照从又往左的顺序。

那么,在书写代码的过程中应该避免最后一行那样的写法,一方面是为移植性着想,一方面是为了避免难以发现的错误。

反正我以后不会在printf里头写++t了。

over...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: