Pular para o conteúdo

ponteiros [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. ponteiros [RESOLVIDO]

Enviado em 14/02/2015 - 19:22h

comecei a estudar ponteiros hoje... e estou com algumas duvidas, então resolvi fazer uns códigos de teste.....
#include <stdio.h>
int strleng(char *s)
{
char *ptr = s;
while (*s!='\0')
s++;
return (int)(s-ptr);
}
int main (void)
{
char s[90];
printf ("Digite uma string: "); gets(s);
printf ("%d\n", strleng(s));
while(*s!='\0')
s++;
return 0;
}

O "s++" do main... retorna um erro"Ivalue required as increment operand", porque isso acontece se foi escrito da mesma maneira que em strleng??

Responder tópico

2. Re: ponteiros [RESOLVIDO]

Melhor resposta

Enviado em 14/02/2015 - 20:10h

É porque char s[90] é um vetor e você não pode alterar o endereço do mesmo.
Repare que dentro da função é criado um ponteiro auxiliar ( char *ptr = s; ), que aponta para o primeiro endereço do vetor s.
O nome de um vetor equivale ao menor endereço do vetor, isto é ao primeiro endereço.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder