Bifalgorithm post · Computer science one · Comparisons
Why can’t numerical comparison operators be used to compare strings in C?
Why can’t numerical comparison operators be used to compare strings in C? (Computer science one · Comparisons) — "When comparing strings in C, we cannot use th…
Ideas in this flowchart
- En C, la comparaison de chaînes ne peut pas se faire avec les opérateurs numériques habituels.
- Les opérateurs == et < ne comparent pas directement le contenu des chaînes.
- Les chaînes sont représentées comme des tableaux de caractères.
- Ces opérateurs comparent donc les adresses mémoire des variables.
- Dans l’exemple, deux zones mémoire sont allouées séparément pour a et b.
- Les deux chaînes reçoivent pourtant le même contenu : « Hello World! ».
- Les appels distincts à malloc() produisent deux adresses mémoire différentes.
- La condition a == b compare ces deux adresses et devient fausse.
- Le message « strings match! » ne s’affiche donc pas.