为毛?为毛?这到底是为毛?求大神。。
#include <stdio.h>void main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",p,q,i,j);
}
这个简单的程序,为什么q的输出值居然是24???想不明白呀。。
我输出的是15,22,8,8啊
用的是vc6.0 我觉得有可能是因为 编译器认为括号内的优先级高,先执行每个括号内的语句,这样j的值就变成了8,然后再将3个j相加,这样就得到24了、 自增的问题不要纠结,没意义,编译器的版本不一样结果不一样,实际开发时自己要注意 谢谢楼主分享 同4l 编译器的问题,没必要纠结 楼上正解哈
页:
[1]