adotando o seguinte modelo:
int *v = 0;
temos:
|++++|
v |_k0_|_#__|
aqui, 'v' � uma vari�vel que mora no endere�o de mem�ria 'k0' e cujo conte�do iniical
� o endere�o de mem�ria 'NULL', que significa um endere�o de mem�ria inv�lido
(simbolicamente '#')
quando se faz, p.ex.,
v = new int (-12);
temos:
|++++| |+++++|
v |_k0_|_k1_| |_k1_|_-12_|
agora, o conte�do de 'v' � o endere�o de mem�ria 'k0', e no endere�o de mem�ria 'k0'
est� o conte�do '-12'
e qdo se faz:
int i = *v;
temos:
|++++| |+++++|
v |_k0_|_k1_| |_k1_|_-12_|
|++++|
i |_k3_|_-12|
ou seja, 'i' � uma vari�vel que mora no endere�o de mem�ria 'k3' e cujo conte�do �
'-12', valor este acessado pelo operador '*' aplicado a vari�vel 'v', i.e., '*v'
acessa o conte�do do endere�o de mem�ria que � o conte�do de 'v'
e, como no seu exemplo, vc faz:
int *v = 0;
int x = -4;
temos:
|++++|
v |_k0_|_#__|
|++++|
x |_k2_|_-3_|
ou seja, 'x' � uma vari�vel, e como tal mora no endere�o 'k2' e seu conte�do � um
inteiro
e em seguida:
v = &x;
temos:
|++++|
v |_k0_|_k2_|
|++++|
x |_k2_|_-3_|
ou seja, a vari�vel 'v', que mora no endere�o 'k0', agora tem o conte�do 'k2', que � o
endere�o de mem�ria onde mora a vari�vel 'x', cujo conte�do � '-3', endere�o este
obtido pelo operado '&' aplicado a vari�vel 'x'
espero q agora vc consiga entender a sa�da do seu pgm!!
por fim, uma dica:
int main(int x) {
.
.
.
x = 5;
.
.
.
}
atribuir valor a um par�metro passado por valor n�o tem sentido... e provavelmente
essa f� n�o se chama 'main'
[]s
---------- Original Message ----------------------------------
From: [EMAIL PROTECTED]
Date: Mon, 1 Oct 2001 17:44:06 -0300
>Ola,
>
>Eu estou com a seguinte duvida em ponteiros em C. =]
>
>Suponha que eu fa�a o seguinte:
>
>#include <stdio.h>
>
>int main( int x){
> int *b;
>
> x=5;
> b=&x
>
> printf("%d %d %d",b,*b,&b);
>
> return(0);
>}
>
>Se eu rodar esse humilde programa ele me retorna-ra:
>
>./programa
>2147482148 5 2147482136
>
>Eu gostaria de saber o q representa cada valor ??
>
>Na verdade, eu nao consegui entender a diferen�a entre usar so a variavel
>ou *variavel ou &variavel.
>
>Eu entendi que:
>
>&variavel => Lugar onde ela esta na memoria
>
>*variavel => Valor atribuido a ela.
>
>variavel => Nao fa�o nem ideia.
>
>Alias, eu to perdidao. Se algum puder fazer um desenho sei la explicando,
>como fica na memoria, sei la! QUalquer ajuda eh bem vinda!
>
>
>Obrigado.
>
>[ ]'s
>
>
>
>___________________________________________________________
>
>http://www.zipmail.com.br O e-mail que vai aonde voc� est�.
>
>
>
>
>
>
--
Rodrigo Canellas
www.EverSystems.com.br
--
Assinantes em 03/10/2001: 2355
Mensagens recebidas desde 07/01/1999: 135172
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]
Re: (linux-br) [ zgrp ] Ponteiros em C
Rodrigo Alexandre Ribeiro Canellas Wed, 03 Oct 2001 12:28:55 -0700
- Re: (linux-br) [ zgrp ] Ponteiros em C Fabio A Mazzarino
- Rodrigo Alexandre Ribeiro Canellas
