C语言很简单的句子,大家帮帮我啊,5555
来源:百度知道 编辑:UC知道 时间:2024/06/06 08:12:35
【例3.17】
main(){
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8
q=24好象错了吧,,,?大家给我详细说说吧,好吗
main(){
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8
q=24好象错了吧,,,?大家给我详细说说吧,好吗
这是运算的优先级;
在一个句子里的‘++’和‘--’;
都要在这个句子中运算:
1:
‘++’和‘--’在变量前的时候;就是优先级最高的;
需要把它们全自增或自减,赋值给相应的变量;
最后在做其它的运算。
2:
‘++’和‘--’在变量后的时候;就是优先级最低的;
需要先把其它的运算算完;
最后在做它们相应的变量全自增或自减,赋值给相应的变量。
真的不懂哈,呵呵,第一次看到你这种,
我的结果是:
18 21 7 8
具体情况咱qq交流....445220731
我运行了上面的程序,怎么算得q=22 呀,请解释一下这是为什么?我得到的输出是15 22 8 8
根据编译器的不同。这些会得出不同的结果。
有些C教程就是误人子弟。。。
写程序用起来的时候 应该避免这些无意义且又有歧义的语句
编译器不同结果真的会不同哦