Advanced features available in the app
Le langage C est un langage de programmation impératif, procédural et bas niveau, créé dans les années 1970 par Dennis Ritchie. Il est à la base de nombreux systèmes d'exploitation et logiciels, notamment Unix. La formation Holberton met un accent particulier sur une compréhension approfondie et pratique du C, adaptée aux développeurs souhaitant maîtriser les concepts fondamentaux et avancés.
Un programme C typique comprend :
#include <stdio.h>
int main(void) {
printf("Hello, Holberton!\n");
return 0;
}
| Type | Taille typique (bits) |
|---|---|
| char | 8 |
| int | 32 |
| float | 32 |
| double | 64 |
if (x > 0) {
printf("Positif\n");
} else {
printf("Négatif ou zéro\n");
}
while (i < 10) {
printf("%d\n", i);
i++;
}
for (int j = 0; j < 10; j++) {
printf("%d\n", j);
}
do {
printf("Exécuté au moins une fois\n");
} while (condition);
int add(int a, int b); // déclaration (prototype)
int add(int a, int b) { // définition
return a + b;
}
Permettent au compilateur de vérifier les appels.
Un pointeur est une variable qui contient l'adresse mémoire d'une autre variable.
int x = 10;
int *p = &x; // p pointe vers x
Un tableau est une zone mémoire contiguë, son nom agit comme un pointeur constant.
int arr[3] = {1, 2, 3};
int *p = arr; // même adresse que arr[0]
int *ptr = malloc(sizeof(int) * 5);
if (ptr == NULL) {
// gestion d'erreur
}
free(ptr);
Permettent de stocker l'adresse d'une fonction.
int (*func_ptr)(int, int) = &add;
int result = func_ptr(2, 3);
int matrix[3][3] = {
{1,2,3},
{4,5,6},
{7,8,9}
};
char str[] = "Holberton";
Permettent de regrouper plusieurs variables sous un même type.
struct Point {
int x;
int y;
};
struct Point p1 = {2, 3};
Permettent de stocker différentes variables dans le même espace mémoire.
union Data {
int i;
float f;
char str[20];
};
#define PI 3.14159
#define MAX(a,b) ((a) > (b) ? (a) : (b))
Attention aux parenthèses pour éviter les erreurs.
gcc -Wall -Werror -Wextra -pedantic -std=gnu89 file.c -o file
[Diagramme]
#include <stdio.h>
#include <stdlib.h>
int *create_array(int size) {
int *arr = malloc(sizeof(int) * size);
if (!arr) {
perror("malloc failed");
return NULL;
}
for (int i = 0; i < size; i++)
arr[i] = i * i;
return arr;
}
int main(void) {
int size = 5;
int *array = create_array(size);
if (!array)
return 1;
for (int i = 0; i < size; i++)
printf("%d ", array[i]);
printf("\n");
free(array);
return 0;
}
#include <stdio.h>
struct Point {
int x;
int y;
};
void print_point(struct Point *p) {
printf("Point(%d, %d)\n", p->x, p->y);
}
int main(void) {
struct Point p = {10, 20};
print_point(&p);
return 0;
}
Citation importante :
"Le langage C est puissant car il offre un contrôle fin sur la mémoire et les ressources, mais cela demande rigueur et compréhension approfondie." — Holberton School
La maîtrise du langage C selon la pédagogie Holberton repose sur une compréhension solide des bases, une pratique régulière des pointeurs, de la gestion mémoire, et une rigueur dans l’écriture du code. La connaissance approfondie des structures, des fonctions, et des méthodes de compilation fait également partie intégrante du parcours.
Cette fiche couvre les notions essentielles pour un niveau intermédiaire, prêt à être approfondi par la pratique et l’étude des projets Holberton.
