Question sur le C [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
21 mars 2010
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Bonjour,

J'ai une question sur le C:

void exemple(const *char);

int main(void)
{
char nom[20];
memset (nom, 0, 20);

printf ("Entrez un nom : ");
scanf ("%s", nom);

exemple(nom);

return EXIT_SUCCESS;

}

void exemple(const *char)
{
....
....
}


Est-il correct d'écrire ça comme ça sachant que la fonction "exemple" attend une constante ou est-ce moi qui comprend mal ?

Autrement dit est-il possible de passer une variable à la fonction "exemple" ?

Je pose cette question parce que toute les fonction de la librairie libxml se présente sous cette forme (avec des const *char) et je souhaiterais choisir le nom en le saisissant plutot que de l'imposer dans le code.

En espérant avoir été clair, je vous remercie pour vos lumières.


Bonne journée.

4 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Le mot clé const signifie (dans ce cas) que la valeur (éventuellement pointée par) le paramètre ne sera pas modifiée. Avec la version actuelle de ton code, si dans la fonction exemple() tu fais printf(var); il affichera le nom entré précédemment par l'utilisateur.
---
VB.NET is good ... VB6 is better
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Ah il manquait un bout de mon explication :
Le mot clé const signifie (dans ce cas) que la valeur (éventuellement pointée par) le paramètre ne sera pas modifiée par la fonction.

---
VB.NET is good ... VB6 is better
Messages postés
5
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
21 mars 2010

excusez moi je remarque une faute dans la déclaration de la fonction qui ne va certainement pas aider à une réponse de votre part.

Erreur : void exemple(const *char);
Correction : void exemple(const char *var);


Sorry, Merci pour votre aide
Messages postés
5
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
21 mars 2010

Ok, mais ça ne veut pas dire que le paramètre envoyé à la fonction ne peut pas être modifié avant l'appel de la fonction ?

Par exemple il est tout à fait possible de faire un scanf et de saisir une valeur de variable puis de l'envoyer à la fonction ?

On ne doit pas l'inscrire "en dur" dans le code ?

Pardon, je sens que ma question est stupide mais je ne comprenais pas très bien le terme de const.

C'est à dire que la variable est constante (non modifiable) dans la fonction ?


Merci