einstein Posted June 10, 2012 Report Share Posted June 10, 2012 Eu tenho algumas dúvidas e como tal vou usar este tópico só para não estar a abrir vários com duvidas de resolução rápida. Entao é assim, tenho isto int a[100]; int * b; (*b)=a[0]; pretendo que o b aponte para a primeira posição do a . Qual a diferença entre ter b=&a[0]; ? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 10, 2012 Report Share Posted June 10, 2012 já tentaste ? b = a; IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Knot Posted June 10, 2012 Report Share Posted June 10, 2012 (*b)=a[0]; isto será o ponteiro b aponta para o valor que está em a[0] b=&a[0]; isto será b aponta para o endereço onde está a[0] Será isto? Ou disse uma grande asneirada? Link to comment Share on other sites More sharing options...
einstein Posted June 10, 2012 Author Report Share Posted June 10, 2012 já tentaste ? b = a; essa forma também funciona, podias-me explicar quais as diferenças? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 10, 2012 Report Share Posted June 10, 2012 tens de ler o redirecionamento dos operadores usados, o & e o [] IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
einstein Posted June 10, 2012 Author Report Share Posted June 10, 2012 tens de ler o redirecionamento dos operadores usados, o & e o [] o & quer dizer que se refere a um endereço de memória e o [] é a posição do vector correcto? Link to comment Share on other sites More sharing options...
Dr_Lion Posted June 11, 2012 Report Share Posted June 11, 2012 & - endereço de * - conteúdo do endereço apontado por int *b; int a[100]; a -- é igual a &a[0] mas é uma situação excepcional, o nome do vector, corresponde sempre ao endereço da primeira posição. a endereço de a[0] & a[0] endereço de a[0] & a[5] endereço de a[5] *a conteúdo de a[0] * ( & a[5] ) conteúdo do endereço apontado por a[5] == a5 * ( & a[0] ) conteúdo do endereço apontado por a[0] == a0 b= & a[0] b = endereço de a[0] *b conteúdo do endereço apontado por b == conteudo de a[0] *b = a[5] o endereço contido em b pode não ser*** o (endereço ) & a[5], no entanto o conteúdo do endereço (apontado) *b é o valor de a[5] ***não tenho a certeza se é sempre ou não, teoricamente é, mas na prática não sei se será feito algum ajusto no caso de a[5] ter um valor constante, inicializado a 0 por exemplo. Link to comment Share on other sites More sharing options...
KTachyon Posted June 11, 2012 Report Share Posted June 11, 2012 int *b = &a[5]; // é o mesmo que: int *b = (a+5); “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare Link to comment Share on other sites More sharing options...
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