一个问题不懂,请大家帮我
void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf( "%d,%d,%d,%d ",p,q,i,j);
}
q在vc里编译,输出为什么是22阿?
应该是24才对阿
在tc下输出是24
为什么啊?
[解决办法]
这个和编译器有关
写的程序最好不要依赖编译器
[解决办法]
这个运算入栈有先后顺序
确实存在各种编译器不一致的问题
建议对同一个变量的++ -- 不要在一个表达式中出现多次
容易出问题
[解决办法]
只能接分....
最好用vc6、vc8、gcc、dev c++、tc等都编译一下,然后看结果
[解决办法]
和编译器有关,输出语句执行的是栈操作,不同的编译器入栈和出栈的方式不同。
建议实际编程的时候不要这么写。
[解决办法]
各编译器不同
入栈顺序有关
[解决办法]
mark
[解决办法]
搜搜前面相关的帖子,有很多讨论这种问题的帖子
把分散了吧,呵呵
[解决办法]
各编译器不同,入栈顺序也会不同,最好是用常用的编译器!!
[解决办法]
编译器的问题 典型的月经帖!