请问printf("%d,%d",*ptr,*(++ptr));这句话是从右往左执行,为什么?

[复制链接]
查看11 | 回复3 | 2012-10-18 09:12:13 | 显示全部楼层 |阅读模式
这种写法不好,C90或C99标准都没有规定这种情况下的执行顺序,给各种编译器实现提供了一定的自由,但也产生了不统一。有的编译器从右往左,有的编译器从左往右,可能还有更怪的。建议分两次输出,去除歧义,加强可移植性。...
回复

使用道具 举报

千问 | 2012-10-18 09:12:13 | 显示全部楼层
%d,%d",*ptr,*(++ptr)逗号运算符,是从左往右计算的(VC下)。...
回复

使用道具 举报

千问 | 2012-10-18 09:12:13 | 显示全部楼层
就那么规定的,就跟字母表a,b,c,d一样,当初定下的规矩...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行