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好象错了吧,,,?大家给我详细说说吧,好吗

这是运算的优先级;
在一个句子里的‘++’和‘--’;
都要在这个句子中运算:
1:
‘++’和‘--’在变量前的时候;就是优先级最高的;
需要把它们全自增或自减,赋值给相应的变量;
最后在做其它的运算。

2:
‘++’和‘--’在变量后的时候;就是优先级最低的;
需要先把其它的运算算完;
最后在做它们相应的变量全自增或自减,赋值给相应的变量。

真的不懂哈,呵呵,第一次看到你这种,

我的结果是:
18 21 7 8
具体情况咱qq交流....445220731

我运行了上面的程序,怎么算得q=22 呀,请解释一下这是为什么?我得到的输出是15 22 8 8

根据编译器的不同。这些会得出不同的结果。

有些C教程就是误人子弟。。。

写程序用起来的时候 应该避免这些无意义且又有歧义的语句

编译器不同结果真的会不同哦