Pular para o conteúdo

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.
C00L3R_ Cooler_
Hits: 20.551 Categoria: C/C++ Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar

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; }
   1. Introdução
   2. Ponteiros, ponteiros para função...
   3. Ponteiros para função com argumento e arrays tridimensionais

Usando o NetBSD como desktop

Módulos de Web no Perl

Banco de dados orientados a documentos

Usando OpenBSD como desktop

Bind: Explorando e evitando falhas

O Produtor e o Consumidor

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

Alocação dinâmica de memória em C

Cuidado com números em Ponto Flutuante

A poderosa nuvem: Intel® DevCloud com GPU Iris Xe Max!

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.