Jump to content

Asterisco


iCl4w

Recommended Posts

Olá Usuários do PaP.org,

Lendo o C - Completo e Total do Herbert Schildt, me deparei com esse código:

is_in (char *s, char c)
{
while(*s)
if(*s == c) return 1;
else s++;
return 0;
}

Pode parecer bobagem, mais o que é o asterisco? Em outros códigos observo:

char s[90];

Só um exemplo. Qual a diferença? O que indica o asterisco?

Agradeço desde já...

Abçs...

Link to comment
Share on other sites

Fazes bem. O * assim só a olhar para código parece uma coisa esquisita e complicada.

Mas se leres uma boa explicação sobre o q são os ponteiros ficas a perceber isso e depois até vais achar q fazem todo o sentido.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Agradeço muito a ajuda.

O video parece ser muito explicativo, até demais! Mas, n sou bom com inglês falado. Faltou a legenda.

Procurei outros vídeos, mas sobre ponteiro tinha 9 aulas de quase 10min cada. Sem noção...

Mas, eu gostaria de tirar a dúvida baseado no que li:

O tipo de dado que o ponteiro aponta, no caso char, é chamado o tipo base do ponteiro. De qualquer forma, a variável ponteiro é uma variável que mantém o endereço de um objeto do tipo base. Logo, um ponteiro para caractere é de tamanho suficiente para guardar um endereço como definido pela arquitetura do computador em que está rodando.

- Retirado de: C - Completo e Total. Schildt, Herbert

Ou seja, o que é um ponteiro? Esse trecho diz que eu posso armazenar a quantidade disponível na memória na variável char? Tipo:

char *ch;

O que quer dizer isso? O livro fala que isso é muito importante, por isso insisto!

Ajudem-me por favor...

Agradeço desde já...[/code]

Link to comment
Share on other sites

É exactamente o q está no texto em cima.

Isto significa q c é um ponteiro de chars.

Se fizeres char *c = "olá";

ficas com c a apontar para a primeira posição do array "olá";

[100] 'o'        <-------  c aponta para aqui.

[101] 'l'

[102] 'á'

[103] '\0'

(100, 101, ... são as posições de memoria (na realidade serão outras))

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

char *c e char c são coisas diferentes.

char *c = char c[ ];

A tua afirmação faz tanto sentido como dizer:

Porque é q em C# existe int[ ] array_inteiros? Porque é que não existe só int inteiro?

Os ponteiros em C são de extrema utilidade, e só ao inicio é q fazem confusão, depois vais ver q fazem sentido.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Realmente!

Observo que o C - Completo e Total tem esse defeito crasso! Ele fala demais no início, o que só faz o leitor se encher de dúvidas. Ao menos, ele fala em que capítulo achar a resposta, embora que pra entender precise conhecer os outros capítulos! Tem muita coisa estranha para um principiante.

Então, irei seguir vossos conselhos e estudar mais. Como disseram, terei a resposta em breve...

Agradeço muito a ajuda de vcs...

Abçs...

Link to comment
Share on other sites

Se é uma boa explicação, Rui Carlos? Ela é ótima!

Era isso que procurava saber.

Em vez de se usar um nome para identificar um pedaço da memória, usa-se directamente o endereço dessa zona de memória para a identificar e chama-se a esse endereço apontador. Diz-se que o apontador aponta ou refere para uma determinada zona de memória.

Para perceber melhor as possibilidades dos apontadores vamos definir agora um segundo apontador, y a fazê-lo apontar para a variável v:

      int *y = x ;

Obtém-se a seguinte situação:

http://ctp.di.fct.unl.pt/lei/ipc/teoricas/images/pointer2.jpg

Muito bom! Obrigado!

Link to comment
Share on other sites

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.