developpement:cpp:modern
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
developpement:cpp:modern [2022/12/13 15:24] – [Endianess] sgariepy | developpement:cpp:modern [2022/12/14 15:46] (Version actuelle) – [Assert] sgariepy | ||
---|---|---|---|
Ligne 250: | Ligne 250: | ||
}; | }; | ||
</ | </ | ||
+ | |||
+ | ==== Tableau statique ==== | ||
+ | |||
+ | * Taille fixe d' | ||
+ | * La taille est fixé au moment de la compilation et ne peut pas grandir (sauf C99) | ||
+ | * Les éléments sont stockés de façon séquentielle et en continu | ||
+ | * Chaque élément a son propre emplacement | ||
+ | * Accessible via sa position | ||
+ | * Ont un index de base 0 | ||
+ | |||
+ | Points importants: | ||
+ | |||
+ | * Les arrays n'est pas un pointeur | ||
+ | * ''< | ||
+ | * Mais accessible via la syntaxe de pointeurs | ||
+ | * Un array peut être assigné à un tableau | ||
+ | * Le pointeur détient l' | ||
+ | * Les autres éléments peuvent être accédés via l' | ||
+ | |||
+ | <code cpp> | ||
+ | int arr1[5]; | ||
+ | int arr2[5]{}; // éléments initialisés avec 0 | ||
+ | int arr3[5]{ 1, 2, 3, 4, 5 }; // initialisé avec les valeurs spécifiés | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | int *p = arr3; | ||
+ | *(p + 2) = 800; // Le 3e élément (index 2) aura la valeur 800 | ||
+ | </ | ||
+ | |||
+ | ==== Passer un tableau à une fonction ==== | ||
+ | |||
+ | <code cpp> | ||
+ | void Print(int *ptr, int size) { | ||
+ | for (int i = 0; i < size; ++i) { | ||
+ | std::cout << ptr[i] << ' '; | ||
+ | //std::cout << *(ptr + i) << ' '; // moins lisible, donc la façon précédente est préférable | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Print(arr3, sizeof(arr3) / sizeof(int)); | ||
+ | </ | ||
+ | |||
+ | En tant que référence: | ||
+ | |||
+ | <code cpp> | ||
+ | template< | ||
+ | void Print(T(& | ||
+ | for (int i = 0; i < size; ++i) { | ||
+ | std::cout << ref[i] << ' '; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | int(& | ||
+ | Print(arr); | ||
+ | </ | ||
+ | |||
Ligne 884: | Ligne 941: | ||
Illustration du Little Endian: | Illustration du Little Endian: | ||
- | |||
- | {{: | ||
{{: | {{: | ||
+ | Ici on voit que l' | ||
Ligne 3329: | Ligne 3384: | ||
* may or may not cause the program to terminate | * may or may not cause the program to terminate | ||
- | + | < | |
- | + | #include < | |
+ | ... | ||
+ | throw std:: | ||
+ | </ | ||
====== I/O and Streams ====== | ====== I/O and Streams ====== | ||
Ligne 4308: | Ligne 4365: | ||
</ | </ | ||
+ | |||
+ | |||
+ | ====== Assert ====== | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | ... | ||
+ | assert(!Empty()); | ||
+ | </ | ||
developpement/cpp/modern.1670941476.txt.gz · Dernière modification : 2022/12/13 15:24 de sgariepy