# **第二週 程設二上課內容** 1. 試著使用指標 *p , 把變數n1 的值改掉 程式碼如下: #include <stdio.h> int main() { int n1=10,n2=20,n3=30; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); int *p=&n1; *p=200; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); return 0; } 執行圖如下 ![](https://i.imgur.com/bSSZQyT.png) 2. 試著使用指標 *p2 , 把變數n3 的值改掉 程式碼如下: #include <stdio.h> int main() { int n1=10,n2=20,n3=30; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); int *p=&n1; *p=200; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); int *p2=&n3; *p2=300; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); return 0; } 執行圖如下 ![](https://i.imgur.com/3yp8LuL.png) 3. 試著先 p2=p1, 然後 *p2=400, 再印出來。 程式碼如下: #include <stdio.h> int main() { int n1=10,n2=20,n3=30; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); int *p=&n1; *p=200; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); int *p2=&n3; *p2=300; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); p2=p; *p2=400; printf("n1:%d n2:%d n3:%d\n",n1,n2,n3); return 0; } 執行圖如下 ![](https://i.imgur.com/e8c4Tfs.png) 4.現在改用陣列 int n[3]={10, 20, 30}, 再用指標, 去改裡面的值 程式碼如下: #include <stdio.h> int main() { int n[3]={10,20,30}; printf("n[0]:%d n[1]:%d n[2]:%d\n",n[0],n[1],n[2]); int *p=&n[0]; *p=200; printf("n[0]:%d n[1]:%d n[2]:%d\n",n[0],n[1],n[2]); int *p2=&n[2]; *p2=300; printf("n[0]:%d n[1]:%d n[2]:%d\n",n[0],n[1],n[2]); p2=p; *p2=400; printf("n[0]:%d n[1]:%d n[2]:%d\n",n[0],n[1],n[2]); return 0; } 執行圖如下 ![](https://i.imgur.com/8FZS59n.png)