Je suis un débutant qui s'exerce seul à travers le langage C. A parti du livre : langage C écrit par B.W.KERNIGHAN et D.M.RITCHIE 2ème édition Masson. J'ai pu faire les quatorze premiers exercices. Ce qui m'a permis d'aborder la parti 1.7 Les fonctions.
Voici le programme dont la compréhension n'est pas encore totalement solide à mon niveau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# include < stdio.h >
    int puiss ( int m , int n ) ; 
/* essai de la fonction puiss */
main ( )
{ 
  int i  ; 
   for ( i = 0  ;  i < 10  ;  ++i )                                             printf(  "  % d  % d  % d\n ", i , puiss (2 , i ) , puiss ( -3 , i )) ;   
return 0 ; 
}
/*puiss  :  élève base à la puissance n ;  n >= 0 */
int puiss ( int base , int n )
{
int. i , p  ; 
p = 1  ; 
for ( i = 1  ;  i  <= n  ;  ++i )
p = p * base  ; 
return p  ; 
}
Ainsi prend fin le programme.
Voici mes préoccupations :
1- Quelle est la première, deuxième,...., valeur que base prendra en tant que entier dans l'instruction p = p * base; est ce zéro ? un ? deux ?

2- la fonction puiss( ) retournera une valeur ( p ) à la fonction main( ). J'aimerais savoir ou comprendre ce qui se passe après. C'est à dire après le retour de la première, deuxième,...., valeur de p à la fonction main( )

Merci d'avance pour l'éclairage.