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

Por: C00L3R_ em 02/04/2012 | Blog: http://bugsec.com.br


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

Banco de dados orientados a documentos

Módulos de Web no Perl

Bind: Explorando e evitando falhas

Usando o PF - Packet Filter

Usando OpenBSD como desktop

Leitura recomendada

Compilando o Mono 2.2 no Ubuntu 8.10

Alocação dinâmica

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

Tutorial OpenGL v3.0

openCertiface: Biométrica Facial em nuvem baseada em software livre

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts