C faz uso extensivo de ponteiros de memória para a manipulação de matrizes, chamadas de funções , estruturas de dados e muito mais. Saber como trabalhar diretamente com ponteiros é fundamental para a eficiência de codificação C . Instruções
criar variáveis ponteiro de memória
1
Entenda que as variáveis de ponteiro memória sempre apontar para dados de um tipo específico. Por exemplo , um ponteiro para um int é diferente de um ponteiro para caracter . No entanto, C não vai impedi-lo de livremente misturá-los . Faça isso somente se você tem certeza que sabe o que está fazendo.
2
Crie uma variável ponteiro de memória usando a sintaxe que você usaria para criar uma variável do tipo desejado , mas com um asterisco (* ) antes do nome da variável, como esta:
int * x ;
3 Considere NULL. Ponteiros sempre pode ser NULL ( 0), e isso normalmente é usado para se referir a um ponteiro que ainda não foi definido para apontar em qualquer lugar.
Referência e Dereference
4
Conheça a referência. Referenciando
refere-se ao processo de encontrar o ponteiro para uma variável existente . Em C , o operador de referência é o comercial (&) . Por exemplo : int color = 5; int * pointer_to_color ; pointer_to_color = &color;
5 Utilize desreferenciação . Dereferencing
é o processo de seguir um ponteiro para o seu valor, o oposto do de referência. Em C o asterisco (* ) é usado para dereferencing , como segue: printf ( "A cor é % d \\ n", * pointer_to_color ) ; /* imprime 5 * /
Use ponteiro de memória Variáveis
6 Passe em um ponteiro para a variável quando você precisa de uma função para ser capaz de mudar uma variável, em vez de passar o valor da variável . Isso permite o uso da função dereferencing para alterar o valor :
anular convert_color_to_RGB (int cor, int * vermelho, verde int * , int * azul ) { * red = redpart (cor) ; * verde = greenpart (cor) ; * azul = bluepart (cor) ;} convert_color_to_RGB (15, & myred , e mygreen , e MyBlue );
7 Trabalho em torno dos limites da C . Sempre que você quiser passar uma matriz ou estrutura para uma função , você deve passar um ponteiro em vez disso, porque C só permite tipos de dados individuais a serem passados para funções:
int subtotal ( int * pontuação , int HowMany ) {int Total = 0, i; for ( i = 0; i retornar total; }
8 Crie um loop Desde cordas são realmente arrays de caracteres , você pode criar um ponteiro para um personagem para percorrer uma string: replace_character void ( char * s , char de , char a ) { char * cp ; for ( cp = s ; cp && * cp ; cp + +) if ( * cp == de) * cp = a ;}
9 Entenda as matrizes visualizações caminho C . matrizes são manipuladas por C como ponteiros , usando a aritmética de ponteiro . C vai multiplicar automaticamente o que você adicionar a um ponteiro, o tamanho dos elementos que ele aponta. isso significa
pontuação [ 5] = 17; é exatamente o mesmo que * ( pontuação + 5) = 17; . Você pode usar ponteiros como um atalho para dereferences matriz por exemplo, * pontuação = 17 ; . sempre se refere ao elemento 0 da matriz.