發新話題

[問題] C語言程式,新手發問

C語言程式,新手發問

在下目前遇到一個問題,可否請高手回答,問題如下:
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);
}

解說:這個程式中,對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。

我的問題:編譯器列印出來得到的答案是15,22,8,8
為什麼q的值與解答不符呢,如果答案24是錯的,又為何是22,請高手解答一下,謝謝!

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。