ponteiros [RESOLVIDO]

1. ponteiros [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

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??


  


2. MELHOR RESPOSTA

Ednux
ednux

(usa Arch Linux)

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.





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts