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: 17.896 ]

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

BSD Sockets em linguagem C

Usando o NetBSD como desktop

Usando o PF - Packet Filter

Apache + PHP + MySQL + ftpd no OpenBSD

Buffer Overflow: Entendendo e explorando

Leitura recomendada

Cuidado com números em Ponto Flutuante

SDL - Ótimo para criação de jogos

Instalando Facebook Folly através do Conan

A mágica do polimorfismo e seus conceitos na ótica de C/C++

O Produtor e o Consumidor

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário