Henrique A. Posted September 26, 2013 at 06:39 PM Report #526154 Posted September 26, 2013 at 06:39 PM 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 😛 e sim provavelmente existe uma maneira melhor de fazer o código desta função mas pronto ainda estou a aprender xD)
pikax Posted September 26, 2013 at 06:53 PM Report #526157 Posted September 26, 2013 at 06:53 PM (edited) for (int i=0;i<=9;i++) { printf("Valor: %p",ptr++); } Edited September 26, 2013 at 06:53 PM 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."
Henrique A. Posted September 26, 2013 at 07:17 PM Author Report #526164 Posted September 26, 2013 at 07:17 PM 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
pikax Posted September 26, 2013 at 08:11 PM Report #526178 Posted September 26, 2013 at 08:11 PM 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."
Henrique A. Posted September 26, 2013 at 10:13 PM Author Report #526201 Posted September 26, 2013 at 10:13 PM 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 🙂
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now