IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Question syntaxe de base


Sujet :

C++

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Question syntaxe de base
    Bonjour,

    Je parcours quelques articles de la faq C++ et des tutoriels C++ pour assimiler quelques notions en C++ et voila deux questions que je me pause.

    Danns le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    /* strchr example */
    #include <stdio.h>
    #include <string.h>
     
    int main (){  
    char str[] = "This is a sample string";  
    char * pch;  
    printf ("Looking for the 's' character in \"%s\"...\n",str);  
    pch=strchr(str,'s'); 
     
    while (pch!=NULL)  {   
     printf ("found at %d\n",pch-str+1);    
     pch=strchr(pch+1,'s');  
    }  
     
    return 0;
     
    }
    que signifient l'étoile * dans la déclaration de pch?
    Enfin, que signifie pch-str+1?

    Si vous aviez un tuto intéressant sur les syntaxes de base (qui "diffèrent" du php) je le lirai avec plaisir.

    Merci

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Va lire les tutoriels sur le langage C. Et tu comprendra c'est quoi le *

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    J'ai lu entre temps un tuto sur les pointeurs.
    Enfin dans les tutos généralement on créé le pointeur sur une variable, ici on définit un pointeur simplement...

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Si ton but est de faire du C++ (et non du C), arrête toi immédiatement ! Le code que tu as posté n'est pas du bon code C++, si tu continue ainsi, tu vas prendre de mauvaises habitudes.

    Utilise par exemple std::string.

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par Anduriel Voir le message
    J'ai lu entre temps un tuto sur les pointeurs.
    Enfin dans les tutos généralement on créé le pointeur sur une variable, ici on définit un pointeur simplement...
    Un pointeur est une variable. Elle pointe une autre variable, ou un espace mémoire particulier. Lorsqu'il n'est pas initialisé, le pointeur ne pointe sur rien, et ne peut donc pas être utilisé : il est invalide.

    Un pointeur devient valide si :
    * il stocke la valeur de retour d'un appel à malloc() (en C) ou new/new[] (en C++). Dans ce cas, il est valide jusqu'à ce qu'il soit passé en paramètre à free() (en C) ou delete/delete[] (en C++).
    * on lui affecte l'adresse d'une autre variable. Dans ce cas, il est valide tant que cette variable existe en mémoire.
    * on lui affecte une valeur comprise entre l'adresse du premier élément d'un tableau, et l'adresse du dernier élément de ce tableau. Dans ce cas, il est valide tant que le tableau existe en mémoire.
    * on lui affecte une valeur comprise entre la valeur de retour de malloc()/new/new[] et cette valeur à laquelle on ajoute la taille de la zone allouée. Il est valide tant que cette zone mémoire allouée existe.

    Je crois que j'ai fait le tour.

    Dans ce cas particulier, on est en fait dans le troisème cas : strchr() renvoie un pointeur dont la valeur est comprise entre l'adresse du premier caractère de la chaine, et l'adresse du dernier caractère. Vu qu'on ne connait cette valeur de pointeur qu'au retour de strchr(), il est inutile de donner une valeur à pch lorsqu'on déclare cette variable.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] quelques questions sur la syntaxe de base en C#
    Par DonJR dans le forum Windows Forms
    Réponses: 14
    Dernier message: 06/12/2006, 14h01
  2. QUESTION RAPIDITE dans BASES TRES VOLUMINEUSES
    Par ias83 dans le forum Débuter
    Réponses: 3
    Dernier message: 17/08/2005, 09h07
  3. Réponses: 15
    Dernier message: 08/08/2005, 18h30
  4. Question vraiment de base
    Par oedicneme dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 16/01/2005, 16h43
  5. [POSTGRES][BASE] Question sur les bases de postgres !
    Par julienOriano dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 15/01/2005, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo