有關遞增的值的問題
第一個是基本的遞增函數,如果使用者輸入6,則因為x++,輸出的答案是7:
#include <stdio.h>
int main(void)
{
int x;
printf("enter a number: \n");
scanf("%d",&x);
x=x++;
printf("%d",x);
return 0;
}
但改成如下比較複雜的程式碼,算出來之後,本來是預期如果使用者輸入6,因為x++,答案會是7,但結果輸出的答案還是6?
#include <stdio.h>
int func(int x);
int main(void)
{
int y,z;
printf("enter a number: \n");
scanf("%d",&y);
z=func(y);
printf("%d",z);
return 0;
}
int func(int x)
{
x++;/*非常奇怪的是,這裡無論改什成什麼,例如x=x+1 x=x*2 x=x-2 答案全是原先輸入的那個數字6,也就是說,這個x值傳回去還是原值。但唯有一個例外,就是x=x/2,除數,則它會有改變,例如輸入6,則本程式出來的答案就是3。怎會這樣?*/
}
|