int* p1, p2;
Selon la norme du C, p1
est un pointeur encore p2
n'est pas.Pourquoi p2 n'est pas un type de pointeur dans la déclaration int * p1, p2 ;?
Je me demande simplement pourquoi la norme C++ ne définit pas aussi p2
comme un pointeur?
Je pense qu'il est raisonnable de le faire. Parce que:
C++ est un langage de typage fort. C'est-à-dire, étant donné tout type T, l'instruction T t1, t2;
garantit toujours t1
et t2
ont le même type.
Cependant, le fait que p1
et p2
n'aient pas le même type rompt la règle, et semble contre-intuitif. Donc, ma question est la suivante: quelle est la raison d'adopter une telle règle contre-intuitive telle quelle? Juste pour la rétrocompatibilité?
Quelle est toute cette absurdité à propos du "typage fort" et de la "rétrocompatibilité"? Quel est le problème avec la possibilité de définir, par exemple, un int et un pointeur sur un int sur la même ligne? – paulsm4
"un int et un pointeur vers un int sur la même ligne" doivent être considérés comme mauvais style. Je pense. – xmllmx
@xmllmx Votre façon d'écrire le qualificateur de pointeur adhérant au nom du type au lieu de l'identifiant est plutôt le mauvais style. 'int * p' est préféré à' int * p' pour cette raison exacte (le '*' qualifie le nom, pas le type). –