débutant a=b différent de b=a ? [C] - C - Programmation
Marsh Posté le 14-04-2012 à 09:10:37
Parce que le signe = en informatique n'a pas du tout le sens du signe = en mathématique.
C'est une assignation: "j'assigne la valeur à droite du = à la valeur à gauche du signe =". Cette opération n'est en aucun cas commutative.
C'est même pour ça que la notation dans certains livres et langages, cette assignation est notée <-- (flèche vers la gauche) et non =.
Il ne faut jamais oublier que derrière un algo en informatique, il y a des cases mémoires, et quand tu copies un tableau A vers un tableau B, tu copies réellement le contenu des cases mémoires de A dans les cases mémoires de B. Il faut donc être sûr que:
1. A et B aient été correctement alloués/réservés
2. B ait une taille au moins égale à A
3. A et B ne se chevauchent pas sous peine de mauvaises surprises. Normalement ce point est garanti par 1, mais lors de l'utilisation des pointeurs, on peut facilement se planter.
On voit bien dès lors que cette opération n'a rien à voir avec un = mathématique.
Marsh Posté le 14-04-2012 à 13:11:03
Pour faire simple :
"=" > opérateur d'assignation (a = b : "j'assigne le contenu de b dans a" )
"==" > opérateur de test d'égalité
Marsh Posté le 14-04-2012 à 06:51:25
Bonjour,
Je viens de réaliser un code assez simple qui me permet de dupliquer un tableau. J'ai longtemps cherché où était mon erreur et je me suis rendu compte que l'ordre avait une importance dans une équation d'égalité :
Donc ma question est pour quoi :
me sort un résultat différent que