Ir ao conteúdo
  • Cadastre-se
WilliamNascimento

C++ Usando os indices vetor

Recommended Posts

Vi algumas aula sobre vetores e nao entendi muito bem os indices por exemplo .

 

 int vetor[10],i;

while ( vetor[i] =! 9) 

 

Acima foi so um exemplo,isso esta me complicando muito,nao sei se consegui explicar direito .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

declarar um int vetor[3] por exemplo equivaleria a int vetor[0], vetor[1], vetor[2]; 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@WilliamNascimento     um vetor é como se fosse muitas variáveis em uma só, e para acessar essa variável você só precisa informar qual o índice ou posição do vetor, e em cada posição você pode guardar um dado inteiro ou letra, então um vetor de inteiro com dez posições seria assim :

vetor_dez.thumb.jpg.8d6ab6d4e78cb41f13ebcf20438f254e.jpg

então para guardar um valor no vetor você coloca assim :

vetor[5] = 45;

e para imprimir o valor dessas dez posições , precisa apenas de duas linhas , assim :

for(i=0;i<10;i++)
    printf("%d\n",vetor[i]);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso o indice seria um valor dentre todos ?

 

Tipo , se eu colocar valor e no eu tiver digitado 10 valores , i tera todos os valores que eu digitei ?

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@WilliamNascimento   o índice é a posição no vetor, e se o vetor tem dez posições como esse aí de cima, então se você colocar dez números nele , um em cada posição, então ele terá os dez valores digitados armazenados nele .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola todos!

Eu penso que toda confusão para entender o que é vetor, vem da própria palavra quando conjugada a índice piora bastante mesmo. A explicação de @devair1010  é perfeita porque descreve com essência o que realmente existe na memória de um vetor. @WilliamNascimento uma coisa que você pode perceber é que dentro da declaração [ x ], o x pode assumir qualquer valor, incluído negativos, sim isso pois quando copilamos a declaração converte para uma / mais operações de aritmética algo que futuramente será explicado pelo professor, as benditas aritmética de ponteiros  que o numero 1 das coisas mais importantes no C ANSI.

 

Essa é uma das partes que mais gosto na linguagem, muito legal mesmo poder estudar ponteiros, poderia ficar horas falando sobre ponteiros...

/*  Programa: forum.c
    Escrito por: Mauro Britivaldo
    Data da Criação: 03/10/2018

    Propósito: CdHardware :: Ilustração #1
    */


#include<stdio.h>  // Incluir as rotinas que fazem Entra e Saída .
#include<stdlib.h> // Incluir as rotinas que fazem uso de memória / conversão de dados.


int main (void) {
   int i, vetor[10] = {1,2,3,4,5,6,7,8,9,10}; // Inicializado vetor na DECLARAÇÃO

   i = 0; // Inicializar contador de células de memória a partir de ZERO
   while (10 > i) {printf ("%d ", vetor[i]); i = 1 + i;}
   return 0;
   }

Observe ou execute esse exemplo, verás que cada 1 dos 10 números nesta ordem serão exibidos.

Naturalmente, cada um deles ocupa um lugarzinho na memória que começa no local onde o numeral 1 foi gravado e termina no local onde o numeral 10 foi gravado. 

 

13 horas atrás, WilliamNascimento disse:

no caso o indice seria um valor dentre todos ?

Sim, poderíamos dizer desta forma e de outras também. Se o nosso vetor tem 10 células na memória e i = 0 i é a primeira célula de memória, portanto i = 9 é a última logo o índice é um valor dentre todos que aponta para aquela célula na memória. Atenção! Variável índice só deve assumir valores entre 0 e 10 - 1, se considerar 10 = tamanho_do_vetor, seu índice é = {0 ... tamanho - 1} para qualquer que seja tamanho maior que 0. Isso!!! O tamanho é sempre ser maior que 0.

 

Por que começar por 0 ?

Por conta da aritmética, pois todo nome de vetor a sua primeira célula na memória, em seguida a segunda célula é a primeira + 1, a terceira é a primeira + 2 ... Isso vai para frente até o limite que em vosso exemplo é a primeira + 9 igual a 10. Isso foi bem ilustrado aqui:

Em 10/03/2018 às 01:24, devair1010 disse:

índice ou posição do vetor, e em cada posição você pode guardar um dado inteiro ou letra, então um vetor de inteiro com dez posições seria assim :

vetor_dez.thumb.jpg.8d6ab6d4e78cb41f13ebcf20438f254e.jpg

 

As seguintes declarações ...

 while (10 > i) {printf ("%d ", vetor[i]); i = 1 + i;}
while (10 > i) {printf ("%d ", *(vetor + i)); i = 1 + i;}

são equivalentes. Na primeira a sintaxe mais comum de vetores, na segundo algo mais C da vida, os ponteiros. Penso que a sintaxe de ponteiros ilustrem melhor o comportamento na memória no caso dos vetores. 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×