Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.sys.mac.programmation > #2711

Re: Précision sur le C

From Olivier Miakinen <om+news@miakinen.net>
Newsgroups fr.comp.sys.mac.programmation, fr.comp.lang.c
Subject Re: Précision sur le C
Followup-To fr.comp.lang.c
Date 2025-01-12 22:26 +0100
Organization There's no cabale
Message-ID <vm1c22$9ck$1@cabale.usenet-fr.net> (permalink)
References <vlp4rh$ouj$1@rasp.pasdenom.info>

Cross-posted to 2 groups.

Followups directed to: fr.comp.lang.c

Show all headers | View raw


[diapublication, suivi vers fr.comp.lang.c]

Le 09/01/2025 19:34, kurtz le pirate a écrit :
> 
> J'ai cette fonction (trouvée sur le net) :
> 
> int find_empty(int board[SIZE][SIZE], int *row, int *col) {
> 
>    for (*row = 0; *row < SIZE; (*row)++) {
>      for (*col = 0; *col < SIZE; (*col)++) {
>        if (board[*row][*col] == 0) {
>          return 1;
>          }
>        }
>      }
> 
>    return 0;
>    }
> 
> Je ne suis pas sûr de bien comprendre les '*' devant les variables et 
> paramètres.

Je t'ai déjà répondu sur fr.comp.sys.mac.programmation, et dit que pour
la lisibilité j'aurais tendance à écrire *prow et *pcol à la place de
*row et *col, pour bien rappeler que prow et pcol sont des pointeurs sur
entiers plutôt que des entiers.

> Pour les paramètres, on passe un pointeur sur les variables row et col 
> connues en dehors de cette fonction.
> 
> 
> Mais, dans les boucles 'for', on utilise encore les pointeurs *row et 
> *col. Ca veut dire que les variables en dehors de cette fonction sont 
> incrémentées dans les boucles ?

Pour encore plus de lisibilité, il aurait même été possible d'écrire la
fonction comme ceci :

int find_empty(int board[SIZE][SIZE], int *prow, int *pcol) {
   int row, col;

   for (row = 0; row < SIZE; row++) {
     for (col = 0; col < SIZE; col++) {
       if (board[row][col] == 0) {
         *prow = row;
         *pcol = col;
         return 1;
         }
       }
     }
   // Si on veut une compatibilité complète avec la fonction donnée
   // en exemple, ajouter soit :
   //    *prow = row; *pcol = col;
   // soit :
   //    *prow = *pcol = SIZE;
   // Cela dit, on s'en fiche probablement.
   return 0;
   }




-- 
Olivier Miakinen

Back to fr.comp.sys.mac.programmation | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Précision sur le C kurtz le pirate <kurtzlepirate@free.fr> - 2025-01-09 19:34 +0100
  Re: Précision sur le C Joseph B <joseph@nowhere.invalid> - 2025-01-09 20:06 +0000
  Re: Précision sur le C Olivier Miakinen <om+news@miakinen.net> - 2025-01-11 16:06 +0100
    Re: Précision sur le C kurtz le pirate <kurtzlepirate@free.fr> - 2025-01-11 16:52 +0100
      Re: Précision sur le C Olivier Miakinen <om+news@miakinen.net> - 2025-01-11 20:17 +0100
        Re: Précision sur le C kurtz le pirate <kurtzlepirate@free.fr> - 2025-01-12 16:31 +0100
  Re: Précision sur le C Olivier Miakinen <om+news@miakinen.net> - 2025-01-12 22:26 +0100
  Re: Précision sur le C pehache <pehache.7@gmail.com> - 2025-01-16 14:09 +0000

csiph-web