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 :

fonctions....


Sujet :

C

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut fonctions....
    bonjour, je voulais savoir comment se comportaient les variables en C...
    per ex, si je déclare une variable k=0 ds main, puis que j'appelle une fonction fonc(k) qui assigne k=3, est-ce qu'apres l'execution de fonc la variable k aura bien pris la valeur 3, ou si la premiere declaration (k=0) est prioritaire....

    peut-on faire de même avec un tableau ? fonc(t[i]).......

    parceque ça ne marche pas chez moi, dc je prefere savoir si g merdé (ce qui est bien pbable), ou si c impossible de cette manière.


    merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par défaut
    En C les variables sont passées par valeur donc la modification d'un argument dans une fonction ne modifie pas la valeur de la variable dans la fonction appellante.

    Par contre les tableau ne sont en C que des adresses, donc quand on passe un tabelau en argument on passe en fait l'adresse de ce tableau, en cas de modification, on modifie donc le tabelau de la fonction appelante...

    Enfin passer une element de tableau ce n'est pas passer un tableau mais une variable, a moins que cet element ne soit lui-meme un tableau...

  3. #3
    Membre averti
    Inscrit en
    Septembre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 16
    Par défaut ou alors
    si tu veut changer une valeur, il te suffit pour cela de passer son adresse a la fonction appellee ... du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    int i;
     
    fcontion(&i);
    }
     
    void fcontion(int *i)
    {
      *i = newvaleur;
    }
    et quand tu revien dans ta fontion i a changer de valeur

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 6
    Par défaut Re: fonctions....
    Bonjour.
    Dans le main:
    fonc(&k); /* Veut dire 'appeler fonc avec comme paramètre adresse de k' */

    void fonc(int *k)
    {
    *k = 3; /* Veut dire 'contenu de la variable pointé par k' */
    }

    Pour passer un tableau K en paramètre, il y a en entre autre:
    fonc2(K);
    fonc2(&K[0]);

    Il doit y avoir des tuto sur ce forum.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    ok, merci

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Biensur tout cela reste vrai dans le cas ou se sont des variables automatique a main cad stocker sur la pile

    il en ai different pour les variables locales déclarer static ou globales
    car elle ne sont pas stocker sur la pile leur durée de vie c la durée de vie du programme...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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