Cours langage C les tableaux, fonctions et passages d’adresses

Les tableaux

Eléments contigus de même type déclaration: type nom[taille];
int t[N];
double cosinus[360];
avec initialisation:
char vowel[6]={‘a’,’e’,’i’,’o’,’u’,’y’};
la taille devient optionnelle:
char* name[]={« Smith », »Doe », »X »};

Taille

-un tableau ne connaît pas sa taille
– l’opérateur sizeof ne marche que pour les tableaux dont la taille est connue à la compilation
3 solutions:
–  connaître la taille grâce à une constante
–  passer la taille en paramètre
–  utiliser un élément marqueur comme le  » pour les chaînes

Tableaux à n dimensions

int t[100][16][45];
chaque t[i][j] est un tableau de 45 int quand on passe un tableau à une fonction, on doit mettre toutes les dimensions sauf la première…

Tableaux a n dimensions

#define N 15000
char t[N][N];
int main(int argc,char* argv[]) {
int i,j;
time_t before=time(0);
for (i=0;i<N;i++) {
for (j=0;j<N;j++) {
t[i][j]=1;
}
}
time_t middle=time(0);
printf(« %d seconds\n »,middle-before)   for (j=0;j<N;j++) {
for (i=0;i<N;i++) {
t[i][j]=1;
}
}
time_t end=time(0);
printf(« %d seconds\n »,end-middle);
return 0;
}

Les fonctions

une fonction a un prototype:
un nom
des paramètres
un type de retour
exemple de définition:
float average(int t[]) {
float sum=0;
int i;
for (i=0;i<N;i++) {
sum=sum+t[i];
}
return sum/N;
}

Définition vs déclaration

définition = code de la fonction
déclaration = juste son prototype avec ;
dans les .h
dans un .c pour une
fonction qu’on ne veut
pas exporter
void get_hen(void);
void get_egg(void) {
/* … */
get_hen();
/* … */
}
void get_hen(void) {
/* … */
get_egg();
/* … */
}

return

renvoie une valeur si retour ≠ void
inutile seulement en fin de fonction void:
void print_sum(float a,float b) {
printf(« %f+%f=%f\n »,a,b,a+b);
}
int print_sum2(float a,float b) {
printf(« %f+%f=%f\n »,a,b,a+b);
}
$>gcc -Wall -ansi function.c
function.c: In function `print_sum2′:
function.c:25: warning: control reaches end of non-void function


Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Cours langage C (296 KO) (Cours PDF)
Cours langage c

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *