petite question sur les pointeurs - C++ - Programmation
Marsh Posté le 06-11-2002 à 14:50:16
blackgoddess a écrit a écrit : par exemple j'ai : int* i; est-il possible d'écrire (*i) = 10; pour que l'int pointé par i soit égal à 10 ? |
>> utilisation normale du pointeur
Citation : |
fait plutot ca
j=(*i); la tu copie la valeur c est mieux ke d utiliser la meme adresse en memoire(moins dangereux et + comprehensible pour la maintenance)
Marsh Posté le 06-11-2002 à 14:53:56
blackgoddess a écrit a écrit : par exemple j'ai : int* i; est-il possible d'écrire (*i) = 10; pour que l'int pointé par i soit égal à 10 ? |
Sans faire un i = new int ;ça va être dur..
blackgoddess a écrit a écrit : et encore une question : j'ai : int* i; int j; si jms l'écriture du dessus est juste : (*i) = 10; donc est-il possible d'écrire : (&j) = i; pour que i et j pointent vers le mm nombre ? |
Nop, faut que t'écrives i = &j (pas besoin de new là) pour que i pointent vers j..
Marsh Posté le 06-11-2002 à 15:01:01
(désolé pour l'oubli du new) et merci @ tt les 2, me voila éclairé
Marsh Posté le 06-11-2002 à 15:46:10
lol wé c vrai new fonctionne tjs avec delete (en tout cas il vaut mieux )
Marsh Posté le 06-11-2002 à 15:58:52
*syl* a écrit a écrit : Sans faire un i = new int ;ça va être dur.. |
Mais bien sur que non! On peut tres bien utiliser les pointeurs pour faire autre chose que de l'allocation dynamique de mémoire!!!
Code :
|
Ou encore :
Code :
|
Marsh Posté le 06-11-2002 à 16:01:55
Ace17 a écrit a écrit : Mais bien sur que non! On peut tres bien utiliser les pointeurs pour faire autre chose que de l'allocation dynamique de mémoire!!! |
Hé mec, relis mon post et tu verras que ton message n'a pas lieu d'être..
Marsh Posté le 06-11-2002 à 16:04:56
*syl* a écrit a écrit : Hé mec, relis mon post et tu verras que ton message n'a pas lieu d'être.. |
Ben je veux bien te faire confiance; désolé si je t'ai mal compris
mais explique moi ce que j'ai loupé dans ton post
Marsh Posté le 06-11-2002 à 16:05:34
oui il n'a p-e pas lieu d'être mais l'exemple de la fonction swap m'interresse bcp, merci à toi aussi
Marsh Posté le 06-11-2002 à 16:07:01
Ace17 a écrit a écrit : Ben je veux bien te faire confiance; désolé si je t'ai mal compris mais explique moi ce que j'ai loupé dans ton post |
Ça :
blackgoddess a écrit a écrit : et encore une question : j'ai : int* i; int j; si jms l'écriture du dessus est juste : (*i) = 10; donc est-il possible d'écrire : (&j) = i; pour que i et j pointent vers le mm nombre ? |
Nop, faut que t'écrives i = &j (pas besoin de new là) pour que i pointent vers j..
Marsh Posté le 06-11-2002 à 16:10:01
lol ok ; bon on va dire que c'était pas assez clair pour moi :-)
Marsh Posté le 07-11-2002 à 05:01:35
Citation : int* i; |
On t'as déjà répondu que oui, mais je rajoute:
Si p est un pointeur, *p est l'objet pointé, avec toutes ses propriétés et ses possibilités.
Code :
|
Ce principe de pouvoir intact est important, car il s'applique à toutes les constructions du C, et permet d'aller asser loin:
Code :
|
On peut faire pire... il n'y a pas de limite de taille.
Citation : int* i; |
Non.
L'adresse d'un objet/variable n'est pas une variable (lvalue) mais une valeur (rvalue).
lvalue fait référence au fait que l'objet peut apparaître à gauche (Left) du signe "=", sans considérer l'éventuelle constance.
rvalue est l'opposé: une valeur, et on ne peut pas changer la valeur d'une valeur, seulement générer une autre valeur.
Typiquement, on peut prendre l'adresse d'une rvalue (son stockage), pas d'une valeur.
En fait, C se contente d'évaluer les expressions, il ne peut pas faire le chemin inverse de choisir les termes de l'expression pour que le résultat soit bon.
La différence entre le pas-à-pas du programmeur et l'équation du mathématiciens...
Marsh Posté le 06-11-2002 à 14:42:42
par exemple j'ai :
int* i;
est-il possible d'écrire
(*i) = 10;
pour que l'int pointé par i soit égal à 10 ?
et encore une question :
j'ai :
int* i;
int j;
si jms l'écriture du dessus est juste :
(*i) = 10;
donc est-il possible d'écrire :
(&j) = i;
pour que i et j pointent vers le mm nombre ?
---------------
-( BlackGoddess )-