Jump to content
dramos21

[Resolvido] Duvida Básico Apontadores

Recommended Posts

dramos21

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

Share this post


Link to post
Share on other sites
eatg75

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.

Share this post


Link to post
Share on other sites
apocsantos

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"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.