C fait un usage intensif des pointeurs de mémoire pour les tableaux de manutention , les appels de fonctions , structures de données et bien plus encore . Sachant comment travailler directement avec des pointeurs est la clé de codage C efficaces. Instructions
créer des variables de pointeur de mémoire
1
Comprenez que variables de pointeur de mémoire pointent toujours vers les données d'un type particulier . Par exemple, un pointeur vers un int est différent d'un pointeur vers un chevalier. Cependant, C ne sera pas vous empêcher de les mélanger librement vers le haut . Faire que si vous êtes sûr que vous savez ce que vous faites .
2
créer une variable de pointeur de mémoire en utilisant la syntaxe que vous utilisez pour créer une variable du type désiré , mais avec un astérisque ( *) placé devant le nom de la variable , comme ceci:
int * x ;
3 Considérez NULL. Les pointeurs peuvent toujours être NULL (0) , ce qui est généralement utilisé pour désigner un pointeur qui n'a pas encore été mis au point n'importe où .
Référence et Dereference
4
Apprenez à connaître le référencement. Référencement
se réfère au processus de trouver le pointeur sur une variable existante . En C , l'opérateur de référencement est l'esperluette (& ) . Par exemple : int couleur = 5; int * pointer_to_color ; pointer_to_color = &color;
5 Utiliser déréférencement . déréférencement
est le processus de suivre un pointeur à sa valeur , à l'opposé de référencement. En C , l'astérisque (*) est utilisé pour le déréférencement , comme suit : printf ( "La couleur est % d \\ n", * pointer_to_color ) ; /* estampes 5 * /casquettes Utilisez variables de pointeur de mémoire
6 Pass en un pointeur vers la variable lorsque vous avez besoin d'une fonction qui permet de changer une variable, au lieu de passer la valeur de la variable. Cela permet à la fonction déréférencement utiliser pour modifier la valeur :
vide convert_color_to_RGB (int couleur , int * red , int * green , int * blue ) { * rouge = redpart (couleur) ; * vert = greenpart (couleur) ; * bleu = bluepart (couleur) ;} convert_color_to_RGB (15, & myred , et mygreen , et MyBlue ) ;
7 travail autour des limites de C . Chaque fois que vous voulez passer un tableau ou une structure dans une fonction , vous devez passer un pointeur à la place , parce que C ne permet types de données simples pour être transmis aux fonctions :
int Sous-total ( int * int scores , howmany ) {int total = 0, i; for (i = 0; i rendement total; }
8 créer une boucle Depuis chaînes sont en fait des tableaux de caractères , vous pouvez créer un pointeur vers un caractère à boucle à travers une chaîne: . < pré > replace_character vide (char * s , char à partir de , char à ) {char * cp , car ( cp = s ; cp && * cp , cp + +) if ( * cp == à partir de ) * cp = à ;}
9
comprendre la manière C vues tableaux. tableaux sont traitées par C comme des pointeurs , en utilisant l'arithmétique des pointeurs . C multipliera automatiquement ce que vous ajoutez à un pointeur de la taille des éléments il pointe. cela signifie que les scores de
[5] = 17; est exactement le même que * (scores + 5) = 17; . . Vous pouvez utiliser des pointeurs comme raccourci pour déréférence de tableau par exemple, * scores = 17; se réfère toujours à l' élément 0 du tableau.