Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Igor Vargas

C Contagem com ponteiros em c

Recommended Posts

Eai pessoal. Estou com uma dúvida nesse exercício. Preciso mostras os 20 números a frente do numero que eu coloquei só que com o ponteiro encrementado e mostrar o conteudo dele.

O problema que depois da 1 posição ele mostra zeros.

 

#include <stdio.h>
#include <stdlib.h>



main(){
	
	int x=10, *pont; //numero é 10
	pont = &x;
	int y;
	for(y=0; y<20; y++){
	printf("%d\n",*pont);
	pont+=1;	
		
	}
	
	
	
	
	
	
	
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, tudo bem?

Interessante só que o melhor para mim é, ver o enunciado do problema como ele é.

Tem como digitar a questão completa?

 

 

Editado por AnsiC
melhorar a mensagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AnsiC foi dado em aula, assim que o material for postado eu coloco aqui. Mas basicamente era criar uma variavel e um ponteiro e depois mostrar o conteudo das proximas 20 posições.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Igor Vargas Então tudo bem.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AnsiC Crie uma variável do tipo inteiro e atribua um valor
qualquer.
• Crie um ponteiro que aponte para esta variável (receba
seu endereço de memória).
• Utilizando ponteiros, imprima na tela o valor contido na
variável.
• Imprima o conteúdo das próximas 20 posições inteiras
na memória.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Igor Vargas Sendo assim, você acertou!

Em 08/08/2018 às 21:11, Igor Vargas disse:

O problema que depois da 1 posição ele mostra zeros.

Porque provavelmente é o que tem.

 

 

Ps.: Isso não quer dizer que esteja errado, em alguns teremos 0 e outros não. Depende de outras questões.

Editado por AnsiC
Ps.
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Igor Vargas Olá. Já trabalhando com aritmética de ponteiros. Maravilha isso!

É importante entender bem o que ocorre nessa operação de incremento:

pont += 1;

"Incrementar um ponteiro acarreta sua movimentação para o próximo tipo apontado, isto é, se pont é um ponteiro para uma variável int, depois dessa operação de incremento, pont será incrementado em um int (4 bytes em ambientes de 32 bits).

Cada vez q pont é incrementado, apontará para o próximo int da memória. A mesma ideia é verdadeira para decremento".

Fonte: Treinamento em Linguagem C (Victorine Viviane Mazhari) 2ª Edição

Espero q ajude!

Editado por giu_d
Erro na explicação
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando o assunto é aritmética de ponteiros, um exemplo bem didático para explicar exatamente o q ocorre ao incrementar ou decrementar um ponteiro é fazendo uso de uma matriz. Dessa forma a gente força para q os elementos da matriz sejam armazenados em um posição contínua da memória.

E, devido a isso, fica mais fácil entender um pouco mais a respeito de aritmética de ponteiros.

Segue o código:

#include <stdio.h>

int main(void) {

    int vet[] = { 2, 4, 6, 8, 10};
    int *p = vet; // aqui p aponta para o primeiro elemento do vetor
    int i;    

    for (i = 0; i < 5; i++) {
        printf("Endereco de memoria do indice %d do vetor: %p\n", i, &p[i]);
    }

    printf("Valor apontado por p: %d\n", *p);
    p += 3;
    printf("Valor apontado por p: %d\n", *p);
    p--;
    printf("Valor apontado por p: %d\n", *p);
    p += 2;
    printf("Valor apontado por p: %d\n", *p);
    p -= 3;
    printf("Valor apontado por p: %d\n", *p);

    return 0;
}

 

Editado por giu_d
Correção no código
  • Curtir 2

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






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

×