Ponteiros - Saindo de Pesadelos

Aqui, vou explicar como trabalhar com ponteiros em C da forma mais fácil possível, tentarei mostrar algo avançado
também. Enfim, quer aprender a usar ponteiro? Leia este artigo, nunca mais irá apanhar.

[ Hits: 19.036 ]

Por: C00L3R_ em 02/04/2012 | Blog: https://github.com/CoolerVoid


Introdução



Por que Ponteiros?

Geralmente, o meio acadêmico dá uma explicação de Ponteiros deixando todos enrolados, e com apenas o básico.

O que faz a todos desviar do caminho dos ponteiros, os poucos que usam, são aqueles que têm sido autodidata ou fizeram algum curso.

Bom, alguns livros têm exemplos bons de Ponteiros, como no livro Ansi C, de K&R, entretanto, a falta de popularidade de tais dicas, torna tal assunto meio obscuro…

Perguntas frenéticas:

Por que usar Ponteiros?

- Desempenho e maior manipulação dos dados.

E se eu não usar?

- Na depuração de códigos STACK, é bem complicada se comparada com HEAP. No tratamento de dados gigantes, poderá ter algumas Traps Malditas.

Outro ponto interessante, uma das diferenças de 64 bits para 32 bits, tanto em 64 como 32, tem 32 bit em int, entretanto, Ponteiro tem 64 bit em 64 bit, e em 32 bit tem 32 bit. Reflita...

O que é ponteiro?

- Nada mais é que uma referência, um tipo de dado que armazena um endereço.

Vamos à um exemplo básico, para depois ver algo complexo:

#include <stdio.h> #include <string.h> int main() { // ponteiro com int int *x,*y; // fazemos o casting para ponteiro de int x=(int *)256; y=(int *)256; // casting para int antes da adição printf("%d \n",((int)x)+((int)y)); puts("digite um numero para adicao com y..."); scanf("%d",&x); printf("%d \n",((int)x)+((int)y)); // ponteiro com strings... char *word; word="ola"; puts(word); word="lol"; puts(word); // 0[l] 1[o] 2[l] word[2] logo temos "l" printf("char: %c \n",*(word+2)); return 0; }
    Próxima página

Páginas do artigo
   1. Introdução
   2. Ponteiros, ponteiros para função...
   3. Ponteiros para função com argumento e arrays tridimensionais
Outros artigos deste autor

Módulos de Web no Perl

BSD Sockets em linguagem C

Buffer Overflow: Entendendo e explorando

Apache + PHP + MySQL + ftpd no OpenBSD

Usando o NetBSD como desktop

Leitura recomendada

Programação de Jogos com SDL

Como funcionam os alocadores de memória do STD C?

Linguagem C - Funções Variádicas

lib cURL - Trabalhe com URLs em C

Dynamic libraries com libtool

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts