※ 引述《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