home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / CataniaB / teach-act / esempi / Vettori_Matrici / matrici.c < prev   
C/C++ Source or Header  |  1997-04-27  |  815b  |  41 lines

  1. /*  
  2.  *  Passaggio di vettori e matrici come parametri. 
  3.  *  Vari esempi.
  4.  */
  5.  
  6. int f(int *a) { /* passo puntatore a matrice */
  7.   int i=2, j=3;
  8.   return *(a+(i*5+j)); /* elemento a[2][3] */
  9.  };
  10.  
  11. int g(int a[][5]) { /* passo matrice */
  12.   return  a[2][3];
  13. };  
  14.  
  15. int h(int *a) { /* passo riga come puntatore */
  16.   return *(a+3);
  17. };
  18.  
  19. int i(int (*a)[]) { /* passo puntatore a riga (like VAR in pascal) */
  20.   return (*a)[3];
  21. }; 
  22.  
  23. int j( int a[] ) { /* passo riga */
  24.   return a[3];
  25. };
  26.  
  27. main() {
  28.  int b[5][5] = { 00,01,02,03,04,
  29.                  10,11,12,13,14, 
  30.                  20,21,22,23,24, 
  31.                  30,31,32,33,34, 
  32.                  40,41,42,43,44 };
  33.  
  34.  /* NB &b[0][0] e` equivalente a b
  35.        *(b+2) e` equivalente a b[2]
  36.  */
  37.  
  38.  printf( "%d %d %d %d %d\n", f(&b[0][0]), g(b), h(*(b+2)), i(b+2), j(b[2]) );
  39. }
  40.  
  41.