[C] Pointer WP版本更新至2.5
3月 10

[C] 指標與陣列的關係

C 語言.瀏覽:[ 803user+436機器人 ]給個回應

指標與陣列的關係,3例題。

EX1:

C:
  1. /* 陣列與指標的運用 */
  2.  
  3. #include<stdio.h>
  4.  
  5. main()
  6. {
  7.   int arr[5]={50,88,12,35,66};
  8.   printf("宣告arr陣列 arr[5]={50,88,12,35,66}\n\n");
  9.  
  10.   /*----------------------------
  11.   相同的,我們也可以運用 & 字元
  12.   來取得元素的記憶體位置。
  13.   ------------------------------*/
  14.  
  15.   printf("arr陣列[0]的值為:%d\n",arr[0]);
  16.   printf("arr陣列[0]的位置為:%p\n",&arr[0]);
  17.   printf("arr陣列[1]的值為:%d\n",arr[1]);
  18.   printf("arr陣列[1]的位置為:%p\n\n",&arr[1]);
  19.  
  20.   /*----------------------------
  21.   也可以不用使用 & 字元,直接打
  22.   上陣列名稱,也可以取得第一個元
  23.   素的位置,加上 * 號可以取得值。
  24.   ------------------------------*/
  25.  
  26.   printf("arr[0]的值:%d\n",*arr);
  27.   printf("arr[0]的位置:%p\n\n",arr);
  28.  
  29.   /*----------------------------
  30.   也可以加上運算式,取得後面的
  31.   值,或位置。
  32.   ------------------------------*/
  33.  
  34.   printf("arr[1]的值:%d\n",*(arr+1));
  35.   printf("arr[0]的位置:%p\n\n",(arr+1));
  36.  
  37.  
  38.   getch();
  39. }

EX2:

C:
  1. /* 使用陣列為引(參)數 */
  2.  
  3. #include<stdio.h>
  4.  
  5. double avg(int t[]);
  6.  
  7. main()
  8. {
  9.   int test[5];
  10.   int i;
  11.   double ans;
  12.   for(i=0;i<5;i++)
  13.   {
  14.     printf("請輸入第%d個數字:",i+1);
  15.     scanf("%d",&test[i]);
  16.   }
  17.   ans = avg(test);
  18.   printf("平均%1f",ans);
  19.   getch();
  20. }
  21.  
  22. double avg(int t[])
  23. {
  24.   int i;
  25.   double sum=0;
  26.   for(i=0;i<5;i++)
  27.   {
  28.     sum += t[i];
  29.   } 
  30.   return sum/5;
  31. }

EX3:

C:
  1. /* 陣列指標運用 */
  2.  
  3. #include<stdio.h>
  4.  
  5. double avg(int *pT);
  6.  
  7. int main()
  8. {
  9.   int i;
  10.   int test[5];
  11.   double ans;
  12.   for(i=0;i<5;i++)
  13.   {
  14.     printf("請輸入第%d人成績分數:",i+1);
  15.     scanf("%d",&test[i]);
  16.   }
  17.   ans = avg(test);
  18.   printf("5人的平均分數為:%1f",ans);
  19.   getch();
  20. }
  21.  
  22. double avg(int *pT) //可以宣告成指標型態
  23. {
  24.   int i;
  25.   double sum = 0;
  26.   for(i=0;i<5;i++)
  27.   {
  28.     //sum += *(pT+i); //指標運算 i 為位置
  29.     sum += pT[i];       
  30.   }
  31.  
  32.   /*-------------------------------------
  33.   當然也可以使用 [] 運算式,當指標與陣列
  34.   有關時,就可以把指標與陣列採用相同的方
  35.   式處理。
  36.   ----------------------------------------*/
  37.  
  38.   return sum/5;
  39. }

標籤:

    

本篇文章引用網址:

其他隨機文章:
  • [WP] 自訂分頁內容
  • 輕鬆下載 YouTube、無名、Yahoo...等,所有線上影音
  • [C] 亂數陣列產生器
  • [軟體] RegEditX「加強版」登錄檔編輯程式
  • 股票 玩? 不玩?怎麼玩?



  • 寫下回應