J'ai une simple fonction C que je déclare que:C: const vs no const ... comment ça se compile?
int strLen(const char* str_)
{
str_ = (char*) 0;
return 0;
}
J'ai été très surpris de constater que compilant! Pourquoi donc?
considérant que cette onedoesn't compilation (ce qui est logique):
int str(const int i_)
{
i_ = 0;
return 0;
}
merci. c'était clair. – sivabudh
Plus important encore, ce pointeur a été pris par * value *, la fonction d'origine ne fait absolument rien! – rlbond
rlbond fait un point important, dans C les arguments sont passés par valeur donc si la fonction modifie ses arguments, aucun changement n'est vu en dehors de cette fonction. – Artelius