Introdução à linguagem C - Parte III

Este artigo é o terceiro artigo da série introdução à linguagem C. Aqui serão abordados assuntos como: declaração de vetores, declaração de ponteiros, inicialização de vetores, utilização de vetores e ponteiros.

[ Hits: 47.966 ]

Por: Ricardo Rodrigues Lucca em 07/07/2003 | Blog: http://aventurasdeumdevop.blogspot.com.br/


Aritmética de ponteiros



Ponteiros e vetores são coisas tão unidas que qualquer operação que possa ser usado vetores, os ponteiros podem ser usados com melhor desempenho que os vetores!

Um ponteiro é uma indicação de um lugar na memória do micro e um vetor é um agrupamento de objetos na memória. Então:

int *x, y[5];
x=y;
//poderia ser x=&y[0]

As linhas acima, são perfeitamente validas! X, que é um ponteiro, passará a apontar o primeiro elemento de y! Agora, vamos a aritmética! Sendo y um agrupamento seqüencial o que acontecerá se fizermos o incremento de x? Isso, mesmo! Ao incrementarmos o x(não o seu conteúdo), estaremos acessando os elementos seguintes de y.

Logo:

#include <stdio.h>

void main(void)
{
    int *x, y[5], z;

   for (z=0; z<5; z++) y[z]=z+1;
   x=y;
  
   for (z=0;z<5;z++) printf("%d ° vale %d !\n", z+1, *(x+z));
}

Pra quem não percebeu, a ultima linha do programa que contem dentro do laço um printf possui uma aritmética com ponteiros, pois incrementamos as posições de memória conforme vamos escrevendo na tela.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Vetores
   3. Ponteiros
   4. Aritmética de ponteiros
   5. Exemplo Final - Tudo num
Outros artigos deste autor

Analogia: X-Window como um sistema operacional

Linux Básico - Parte II

VIM avançado (parte 1)

Introdução à linguagem C - Parte IV

Ponteiros void na linguagem C (parte 2)

Leitura recomendada

Introdução a GTK+ em C

Introdução à linguagem C - Parte I

Introdução à linguagem C - Parte II

Vírus de computador e criação de um vírus em C/C++ (parte 1 - básico)

Linguagem C - O primeiro programa

  
Comentários
[1] Comentário enviado por Henryynogui em 03/04/2004 - 09:17h

-->*/Construa a solução que preencha um vetor com código do funcionário,em outro vetor com o salário e o terceiro resultante do aumento de 15 % para os salários entre 500,00 e 1200,00. Ao final,exiba um vetor com código do funcionário e seus respectivos salários e um vetor com aumento em ordem crescente com funcionário correspondente. /*

[2] Comentário enviado por Henryynogui em 03/04/2004 - 09:18h

Dá uma forcinha por favor com esse programa em c.

-->*/Construa a solução que preencha um vetor com código do funcionário,em outro vetor com o salário e o terceiro resultante do aumento de 15 % para os salários entre 500,00 e 1200,00. Ao final,exiba um vetor com código do funcionário e seus respectivos salários e um vetor com aumento em ordem crescente com funcionário correspondente. /*

[3] Comentário enviado por Henryynogui em 03/04/2004 - 09:19h

-->*/Construa a solução que preencha um vetor com código do funcionário,em outro vetor com o salário e o terceiro resultante do aumento de 15 % para os salários entre 500,00 e 1200,00. Ao final,exiba um vetor com código do funcionário e seus respectivos salários e um vetor com aumento em ordem crescente com funcionário correspondente. /*

email: [email protected]

[4] Comentário enviado por jllucca em 03/04/2004 - 09:59h

opa, vamos conversar por email que acho fica mais facil pra ti ajudar :)

[5] Comentário enviado por HunZ em 03/09/2004 - 18:01h

Já fiz alguns programinhas em C. Mas nunca usei ponteiros..
Os ponteiros ajudam no que?
Ou eles apenas facilitam na hora de programar?

[6] Comentário enviado por jllucca em 03/09/2004 - 19:33h

HunZ, eles tanto facilitam a programação como facilitam. Num unico ponteiro podemos ter um endereço que nesse novo endereço podera ter um outro endereço e, assim, sucessivamente...

Ponteiros são a unica forma de implementar a "Alocação dinamica" que é ir utilizado a memoria a medida que tu vai precisando dela. Por exemplo, tu cria um ponteiro lista e um aux. Ai para fazer a lista dinamica, tu reserva espaço para aux e faz ele apontar para a lista e depois a lista recebe o aux. Isso parece meio complicado, mas c voce usar uma estrutura e conseguir visualizar o que ocorre não terá duvidas do "poder" do ponteiro. Poder tanto construtivos como destrutivos, pq tu pode passar horas procurando um erro que é um ponteiro que retornou NULL e não foi checado hehehe

[]'s

[7] Comentário enviado por breulitro em 07/12/2004 - 02:54h

como se compila o programa ???

[8] Comentário enviado por jllucca em 07/12/2004 - 14:10h

gcc <nomedoarquivoc>

[9] Comentário enviado por [email protected] em 19/12/2004 - 21:21h

Por favor preciso de uma ajuda eu usava o Red Hat na faculdade e compilava normal agora to testando o Kurumim e naum consigo compilar os meus programas, o q pode ser ? vc sabe qula compilador ideal p o Kurumin???

[10] Comentário enviado por jllucca em 19/12/2004 - 21:50h

Oi,

eu nunca mexi com o kurumin então vou passar dois links. O primeiro é um forum da comunidade kurumin e o segundo um post de outro forum de um cara que tava com problemas pra compilar programas.

Eis, os links:

http://www.kurumin.com.br
http://www.unidev.com.br/forum/topic.asp?TOPIC_ID=13009

[]'s

[11] Comentário enviado por rockstore6 em 19/07/2007 - 23:29h

pow muito bom o artigo gostei

[12] Comentário enviado por f_Candido em 10/09/2007 - 21:47h

Muito bom o Artigo, principalmente a parte de Ponteiros.
Abraços


Contribuir com comentário