Crear variables de puntero de memoria
1
Entender que las variables de puntero de memoria siempre apuntan a los datos de un tipo determinado . Por ejemplo , un puntero a un int es diferente de un puntero a un char . Sin embargo , C no le impida mezclar libremente hacia arriba . Hazlo sólo si estás seguro de que sabes lo que estás haciendo .
2
Crear una variable de puntero de memoria mediante el uso de la sintaxis que se usa para crear una variable del tipo deseado , pero con un asterisco (* ) antes del nombre de la variable , así:
int * x;
3Considere NULL . Punteros siempre pueden ser nulo ( 0 ) , lo que se suele utilizar para hacer referencia a un puntero que todavía no se ha puesto a punto en cualquier lugar .
Referencia y Dereference
4Conoce referente. Referencing
se refiere al proceso de encontrar el puntero a una variable existente . En C , el operador de referencia es el signo (& ) . Por ejemplo : intcolor = 5 ; int * pointer_to_color ; pointer_to_color = &color; Página 5Utilizar desreferenciación . dereferencing
es el proceso de seguir un puntero a su valor, lo contrario de referencia . En C, el asterisco ( *) se utiliza para la eliminación de referencias , de la siguiente manera :printf ( "El color es % d \\ n", * pointer_to_color ) ; /* imprime 5 * /
uso de memoria Variables puntero
6Pass en un puntero a la variable cuando se necesita una función para poder cambiar una variable, en lugar de pasar el valor de la variable. Esto le permite utilizar la función de eliminación de referencias para cambiar el valor :
convert_color_to_RGB void (int color, int * rojo, verde int * , int * blue ) { * rojo = redpart (color ) , * = greenpart verde (color ) ; * azul = bluepart (color ) ;} convert_color_to_RGB ( 15 , y myred , y mygreen , y MyBlue ) Página 7trabajo alrededor de los límites de la C . Siempre que quiera pasar una matriz o estructura en una función , debe pasar un puntero en cambio, debido a que C sólo permite tipos de datos simples que se pasan a las funciones :
int subtotal ( int * Partituras, int howmany ) { int Total = 0 , i; for (i = 0 ; i rendimiento total ;} Página 8Crear un bucle Como las cadenas son en realidad conjuntos de caracteres , se puede crear un puntero a un personaje para recorrer una cadena: . < pre > void replace_character (char * s , carbonilla , char a ) { char * cp , porque ( cp = s ; && cp * cp ; cp + +) if ( * cp == a ) * cp = a ;}
9Entender la forma en vistas C matrices. matrices están a cargo de C como punteros , utilizando la aritmética de punteros . C multiplicará automáticamente lo que se agrega a un puntero por el tamaño de los elementos que apunta. Eso significa que las puntuaciones
[ 5 ] = 17 , es exactamente lo mismo que* (puntajes + 5 ) = 17 , . . puede utilizar punteros como una abreviatura de desreferencias array por ejemplo,* Puntuaciones = 17 , siempre se refiere a la elemento 0 ª de la matriz.