Bonjour,
Simple curiosité,
Quelle est la différence entre:
MerciCode:
1
2
3
4 ptr* pointeur; vs ptr *pointeur;
Version imprimable
Bonjour,
Simple curiosité,
Quelle est la différence entre:
MerciCode:
1
2
3
4 ptr* pointeur; vs ptr *pointeur;
Pour les curieux comme moi:
http://programmers.stackexchange.com...int-i-or-int-i
Absolument aucune.
pas d'accord.
Si tu fais:
int* a,b,c;
alors tu obtiens 3 pointeurs de type int.
si tu fais:
int *a,b,c;
alors tu obtiens 1 pointeur de type int et 2 variables de type int.
Question de syntaxe.
Faux, dans les deux cas tu obtiens a pointeur sur un int, b et c int.
Raté, ça te donne dans les deux cas qu'un seul pointeur de int. C'est pourquoi certains privilégient la deuxième syntaxe justement pour éviter de faire l'erreur. Personnellement je fais plutôt partie de la seconde école, parce qu'en 2015 on déclare rarement trois pointeurs "bêtes" de suite. Et puis parce que j'aime bien me dire dans ma petite tête "i est un pointeur de int", c'est à dire ce que m'évoque "int* i".
A noter qu'il semblerait que par contre, en C#, c'est bien trois pointeur de int qui sont déclarés avec int* a,b,c;
EDIT : owned :)
Il n'y a pas de pointeur en C#.Citation:
A noter qu'il semblerait que par contre, en C#, c'est bien trois pointeur de int qui sont déclarés avec int* a,b,c;
Ca dépend de ta façon d'interpréter le sens du pointeur.
Variable pointeur qui pointe sur un type int : int *ptr;
Variable de type pointeur sur un int : int* ptr;
Je préfère les méthodes de gros simplet. J'ai tendance à ne déclarer que des variables de même type sur la même ligne. Comme ça pas de temps perdu sur les bizarreries syntaxiques de C (qui est malgré ce genre de chose un de mes langages préférés).
Comme on ne devrait pas pré-déclarer les variables, ne déclarez qu'une variable par ligne.Citation:
J'ai tendance à ne déclarer que des variables de même type sur la même ligne.
Pour ne plus jamais me tromper, ma traduction en français de int * a, b, c est:
L'étoile, les crochets et les parenthèses sont des modificateurs de variables.Citation:
Soient trois int: la valeur pointée par a, la variable b et la variable c.
Ça existe dans le mode unsafe : Safe and Unsafe code (C# vs Java).
Ça désactive le garbage collector et ça permet l'utilisation des API bas niveau en C.
C'est le genre de différences obscures des langages qui peut vraiment entraver leur compréhension Pointer types (C# Programming Guide).
De toutes façons, le compilateur bien configuré nous crachera à la figure si on veut assigner un int * à un int.