Jump to content
Henrique A.

Usar Apontadores num for..

Recommended Posts

Henrique A.

Peço desde já desculpa se não for este o sitio para tirar esta dúvida.

Para começar vou só dizer que estou num curso Profissional de Programação(claro xD) 11º ano.

Então é assim a minha professora mandou-nos fazer um projecto a pares em que temos de fazer um menu(código do menu foi dado pela professora) em que podemos seleccionar várias opções, sendo que essas opções vão ser funções que nós vamos ter de realizar.

Na que eu estou agora tenho de fazer

- um vetor do tipo inteiro com 10 posições e inicializar com valores de 1 a 10; já fiz

- declarar um apontador para o vetor;já fiz

- mostrar os endereços e os valores contidos no vetor, MAS só posso usar apontadores com o auxilio de um ciclo for <-e é aqui que tenho o problema pois não sei como vou fazer um "for" só com apontadores, já tentei procurar na Internet mas não consegui encontrar nada em que conseguisse perceber.

Aqui está o código da função que fiz até agora, ainda só tinha posto para mostrar o valor e desta forma consigo que mostre os valores de 1 a 10 mas a prof. disse que estava mal e tinha de usar apenas apontadores

void F3()
{
 int vet[]={1,2,3,4,5,6,7,8,9,10};
 int i;
 int *ptr;
 ptr=&vet[0];
 for (int i=0;i<=9;i++)
 {
   cout<<"Valor:"<<ptr[i]<<"\n";
 }

(Espero que não tenho sido confusa a minha pergunta :P e sim provavelmente existe uma maneira melhor de fazer o código desta função mas pronto ainda estou a aprender xD)

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
pikax
for (int i=0;i<=9;i++)
{
printf("Valor: %p",ptr++);
}

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
Henrique A.

isso mostra-me o endereço certo?

vou simplificar a pergunta caso tenha ficado confusa:

Como posso mostrar os valores e os endereços de cada posição do vetor com um ciclo for utilizando apenas apontadores?se poderem tbm explicar e não só mostrar código agradecia porque posso não conseguir entender .. :S

Share this post


Link to post
Share on other sites
pikax

Uma apontador e' como o nome indica aponta para um local de memoria.

um apontador e' declarado com um * antes do nome da variavel.

para obter o valor de onde o apontador esta' a apontar deve-se usar o * antes do nome da variavel.

char str[] = "P@P"; //usar um array de strings
char *ptr = nullptr; //declarar um apontador de char

ptr = str; //str e' uma especie de apontador entao estamos a dizer que o ptr ira' apontar para o mesmo sitio que o str.
cout<<str<<endl; //imprime P@P
*(ptr++) = 'a';

cout<<*ptr<<endl; //imprimir o valor para onde ptr esta' a apontar

cout<<ptr<<endl;

Claro que ainda falta muito que explicar, isso deixo para a tua professora explicar, ou alguem com mais tempo que eu e com vontade de explicar.

de qualquer das formas, ve estes link:

https://www.portugal-a-programar.pt/topic/60162-apontadores-uma-explicacao-visual

http://www.portugal-a-programar.pt/topic/62389-apontadores-e-strings/page__st__20#entry524331


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
Henrique A.

acho que já sei como vou fazer.tive que pesquisar sobre o printf() visto que não falamos disso nas aulas e se falamos foi pouco

Por isso obrigado pelas respostas :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.