Como entender a estrela do ponteiro * em C?
Estou tendo problemas com o sinal do ponteiro *, acho muito confuso como ele é usado nas declarações e nas expressõe
Por exemplo
int *i; // i is a pointer to an int
Mas qual é a lógica por trás da sintaxe? O que significa o * pouco antes do que eu quero dizer? Vamos dar o seguinte exemplo. Corrija-me onde estiver errado:
char **s;
char *(*s); // added parentheses to highlight precedence
E é aqui que perco a noção. O * s entre parênteses significa: s é um ponteiro? Mas um ponteiro para o que? E o que o * fora dos parênteses significa: um ponteiro para o que s está apontando?
Então, o significado disso é: O ponteiro apontando para o que está apontando é um ponteiro para um caracter
Estou perdida. O sinal * é interpretado de maneira diferente nas declarações e expressões? Em caso afirmativo, como é interpretado de maneira diferente? Onde eu estou errando