精華區beta Programming 關於我們 聯絡資訊
※ 引述《ast.bbs@bbs.sayya.org (ast)》之銘言: > #include <stdio.h> > void fun1(int *n); > int main() > { > int x = 12; > int *y; > y=&x; > fun1(y); > printf("*x = %d\n",x); > return 0; > } > void fun1(int *n) > { > *n = *n++ + --*n; > } --*n 是 11, 因為這行在做的時候必須先把 --n 做掉 於是 n 這時候會看成 11, 所以等式 : *n = 11++ + 11 存回 *n 會等於 22, 至於 n++ 什麼時候回存我建議你去查組譯後的樣子 > 這印出是22可是,為什麼啊? > *n++ 那時是12我可以理解 > --*n卻等於10 ??請問我哪裡的觀念錯誤勒? -- ※ Origin: 元智資工 火車站 <bbs.cse.yzu.edu.tw> ※ From : 61-222-88-47.hinet-ip.hinet.net