int x, *ip;
ip = &x;
x=10;
這時候如果把一些我們關心的值印出來,很快就可以釐清其中的關係
x = 10;
x = ox1001;
ip = ox1001;
*ip = 10;
舉個容易讓我困惑的例子:
int x = 10;
int *ip = &x;
第二行如果理解成
int *ip;
ip = &x;
就比較容易懂了
簡單的總結
int *ip;
ip是一個指向int的pointer,印出來會是位址
*ip則是被ip指向的int,印出來會是該位址的值
不過*ip = 10;這種直接操作該位址的值的方式是不被允許的
你可以這麼想,
int *ip = &x;
*ip其實就是*(&x),也就是x啦