首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个有关问题不懂,请大家帮小弟我

2012-04-04 
一个问题不懂,请大家帮我voidmain(){inti5,j5,p,qp(i++)+(i++)+(i++)q(++j)+(++j)+(++j)printf( %

一个问题不懂,请大家帮我
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
[解决办法]
搜搜前面相关的帖子,有很多讨论这种问题的帖子
把分散了吧,呵呵
[解决办法]
各编译器不同,入栈顺序也会不同,最好是用常用的编译器!!
[解决办法]
编译器的问题 典型的月经帖!

热点排行