Bonjour.
Je débute en programmation avec le site du zero(exelent au passage).
Je viens de voir que c'est du C89 qui est enseigné et qu'il existe plusieurs versions du C, donc y a-t-il une difference importante entre chaque versions?
Si oui, lequel est à conseillé?
Merci d'avance de vos réponses.
C89 est la norme ANSI du C. Ce n'est pas bien important quand on ne veut pas programmer un compilateur C ;-)
C'est pas une version du C qu'il faut chercher mais un compilateur qui respecte plus ou moins la norme. Mais, franchement, ne te pose pas de question là-dessus.
Je dirai que le meilleur compilateur est gcc.
le compilateur de visual C++ ne respècte pas toutes les normes ANSI. Le plus gênant est la déclaration d'une variable dans un for:
Code :
for( int i = 0 ; i < 10 ; ++i )
{
printf("%d\n", i);
}
printf("%d\n", i);
ceci est cencé générer une erreur car i n'est définie que dans la boucle for dans la norme ANSI. Or ça marche sous visual, car il le déclare en local dans le contexte au dessus.
Donc, comme tu peux le voir, les différences ne touchent que quelques détails.
non ce n'est pas pareil. Dans mo exemple ça fait la même chose
Code :
int a;
int i = 0;
a = i++;
Ici, i = 1 et a = 0
Code :
int a;
int i = 0;
a = ++i;
Ici, i = 1 et a = 1
voilà, i++ retourne la valeur de i avant incrémentation, et ++i retourne la valeur de i après incrémentation.
En C++ pour les objets, objet++ crée une instance en temporaire en mémoire pour retourner une copie de l'objet avant incrémentation.
alors que ++objet incrémente et retourne lui-même sans faire de copie.
Donc mettre ++i au lieu de i++ est une habitude pour éviter de faire it++ avec des itérateurs qui sont des objets. Moi, quand j'ai à incrémenter ou décrémenter, je fais toujours de la preincrémentation, sauf si je ne peux pas.
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.