【C Prime Plus】学習ノート、Chapter 10、配列とポインタの2

1539 ワード


 
//C Prime Plus, Page 656/*   int marbles[10]; この配列のすべての要素の和を計算する場合、関数の可能な呼び出し形式は、int total=sum(marbles)配列名marblesがその最初の要素のアドレスであり、アドレス(ポインタ)が整数数(int)である、すなわち、形参marblesが実際に1つのアドレスを転送した場合、したがって、int*pポインタを用いて関数プロトタイプを構築することができる:従って、対応する関数プロトタイプは以下の通りである:int sum(int*ar)はもともと配列を求める和であり、ポインタで表現できるものである.
*/
   int sum(int *ar)
   {
     int i;
  int total=0;
  for(i=0;i<10;i++)
  total+=*(ar+i) ; // *(ar+i)          ,           ,           .
  //    total+=ar[i],              ,       
  // ar[i] is the same as *(ar+i)

  //--
      return total;

   }

 
10もパラメータとして渡すと:
 
 
 int sum(int *ar,int n)
   {
     int i;
	 int total=0;
	 for(i=0;i<n;i++)
		total+=ar[i] ; // ar[i] is the same as *(ar+i) ,      C       .                .

  //--
      return total;

   }

 
/* 
              ,       int ar[]    int *ar,             :
     int sum(int ar[],int n);
         int *ar   int ar[]         
        ,        , int *ar      int          pointer-to-int
	    int ar[]     int     ,           ,      int
	          , pointer-to-int 


                   ,  4       (        ,          )
		int sum(int *ar,int n);
		int sum(int *,int);
		int sum(int ar[],int n);
		int sum(int [],int);
	   */