Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254642 Messages dans 14035 Fils de discussion- par 6616 Membres - Dernier membre: louloufcb

21 Mai 2012 à 19:42:40
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)& > des pointeurs ?
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: & > des pointeurs ?  (Lu 174 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Camil-Beno
Hors ligne Hors ligne

GTAOnline Fan Boy
*

XG Team

Messages: 1975


« le: 19 Juillet 2010 à 01:32:40 »

Salut à tous , j'aimerai savoir à quoi servent les pointeurs "&" ( je sais que c'est plus utilisé en C) mais j'ai vu ça en pawn .
Merci d'avance , au revoir
Journalisée



Non, je ne donne plus d'aide par PM pour faute d'abus de ma gentillesse
S!m
Hors ligne Hors ligne


Moderateur
GTAOnline Fan Boy
*

Messages: 2260


« Répondre #1 le: 19 Juillet 2010 à 02:37:33 »

Salut,

tu parle sans doute du passage de paramètre par référence.

Cette méthode permet de modifier la valeur de la variable qui est passé en paramètre.
Par exemple, dans le cas suivant:

Code:
public OngameModeInit()
{
    new test = 6;
    Incrémente(test);
    return 1;
}

Incrémente(&valeur)
{
    valeur++;
}

La valeur de la variable test après la fonction sera de 7 et non de 6.
Normalement, la modification de valeur dans la fonction n'a aucun impact sur la variable test.

Cette méthode est utilisée, par exemple, avec strtok pour le paramètre de position dans la chaine (généralement nommé idx).

++Sim++
Journalisée





[viruz]rider_77
Hors ligne Hors ligne


GTAOnline Fan Boy
*

C/C++ programming

Messages: 1845


« Répondre #2 le: 19 Juillet 2010 à 05:58:41 »

En effet, ceci nous permet de modifier directement la valeur de notre variable au lieu de modifier une copie de celle-ci qui n'aura aucun impact sur sa propre valeur Sourire
Journalisée
Camil-Beno
Hors ligne Hors ligne

GTAOnline Fan Boy
*

XG Team

Messages: 1975


« Répondre #3 le: 19 Juillet 2010 à 12:27:30 »

Que signifie la fonction "Incrémente" ?

ps : Merci pour les explication ^^
Journalisée



Non, je ne donne plus d'aide par PM pour faute d'abus de ma gentillesse
Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3725


WWW



sasuke78200

« Répondre #4 le: 19 Juillet 2010 à 13:22:57 »

Incrémenter veut dire augmenté la variable de 1.

Puis tu as fait une erreur le signe & n'est pas un pointeur, mais il nous renvoie l'adresse mémoire d'une variable ^^

Par exemple


Code:
new i = 50;

printf("i = %d\n", i );
printf("&i = %d\n", &i);

Le premier printf sera

Code:
i = 50
le second sera
Code:
i = 59410241
Pris au hasard

Et donc quand on fait


Code:
stock AuCarre( &x )
{
// x *= x; revient au même
x = x * x;
}

on envoie en paramètres l'adresse en mémoire de x, et donc on peut écrire directement sur x, qui est hors de la fonction.

C'est comme un GetPlayerPos()

tu déclare tes variables et ensuite, elle sont modifié à l'appel de GetPlayerPos() ^^


EDIT: Beurk, mon exemple sur les printf ne fonctionne pas en pawn ....

Mais en C et C++ ça fonctionne très bien ^^
En tout cas cette exemple t'aurai aidé à comprendre si tu l'aurai pratiqué
« Dernière édition: 19 Juillet 2010 à 13:52:05 par sasuke78200 » Journalisée






Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog
Camil-Beno
Hors ligne Hors ligne

GTAOnline Fan Boy
*

XG Team

Messages: 1975


« Répondre #5 le: 19 Juillet 2010 à 13:41:12 »

Merci bien Sourire

Au revoir
Journalisée



Non, je ne donne plus d'aide par PM pour faute d'abus de ma gentillesse
Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.122 secondes avec 23 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact