查看單個文章
  #1  
舊 2014-03-06, 06:10 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,053
預設 有關遞增的值的問題

第一個是基本的遞增函數,如果使用者輸入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。怎會這樣?*/
}
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章