Jump to content

[Resolvido] Duvida Básico Apontadores


Recommended Posts

Posted (edited)

Boa noite pessoal,

Estou com uma dúvida neste exercicio em que tenho que dizer o que acontece aos valores de i e j quando usada a funcao proc.

quando é chamado na main proc(&i,&j) , o facto de a funcao estar iniciada com apontadores( int * a , int * b ) significa que o que vai ser chamado será ( * &i, * &j), ou seja, ( i, j ); ?

Apontadores é algo que me faz um bocado de confusão.

#include <stdio.h>
void proc( int * a, int * b )
{
  int c = *a;
  *a = *b;
  *b = c;
}
int main( void )
{
  int i = 7;
  int j = 9; 
  proc( &i, &j );
  return 0;
}
Edited by dramos21
Posted

Oi boa noite.

Basicamente o que a tua funcao proc faz e trocar o valor de 2 variaveis recebidas como argumento. Por omissao quando passas uma variavel (seja ela de que tipo de dado for) ela e passada como valor, i.e. e criada uma copia da variavel e dentro da funcao em causa opera-se sob a copia e nao a variavel fora da funcao. Por vezes precisamos passar uma variavel a uma funcao e queremos que qualquer alteracao ao conteudo da variavel refleta ca fora, e ai e que entram os ponteiros!

Por exemplo:

Victarion seized the dusky woman by the wrist and pulled her to him.

Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see.

Moqorro's dark eyes seemed to shine.

Moqorro - I see dragons.

Posted

Boa noite,

// & -> endereço de (o endereço de memória para onde um apontador aponta)
// * -> Apontado por (o valor armazenado no endereço do apontador)
#include <stdio.h>
void proc( int * a, int * b )
{
int c = *a; //c passa a ter o valor de ("apontado por *a)
*a = *b; //*a passa a ter o valor de ("apontado por *b)
*b = c; //*b passa a ter o valor de c
}
int main( void )
{
int i = 7;
int j = 9;
proc( &i, &j ); //envia para a função proc os valores de (apontador de i, e apontador de j) ou seja os endereços de memória onde estão armazenados os
// valores das variaveis i e j
return 0;
}

Penso que estja suficientemente perceptivel.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

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.