无水印对话生成器时间:关于c语言的问题,跪求大虾帮助

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 01:20:46
c语言中如果有几个并列的括号,先算那个括号?
比如
main()
{
int a=1,s;
clrscr();
s=(a=a+1)+(a=a*2);
printf("%d",a);
getch();

}
对于 s=(a=a+1)+(a=a*2);这句,按常理讲,括号运算级别最高,应先算括号,又由于括号是左结合,所以应先算左边的括号,因此输出a的值应为4,但实际操作中,无论是把(a=a+1)放在左边还是把(a=a*2)放在左边,a最终都得3,为什么呀??????????

在不同的编译环境中,运算操作顺序是不同的。我的XP系统下VC6.0运行的结果就是4。所以,永远不要写这种可能产生歧义的代码。比如++i,i--什么的,尽量单独写一行,不要混在其他代码中。

你的思路完全错误