Dlaczego mogę zwiększyć pozycję tablicy znaków w funkcji, a nie w głównej

Jaka jest różnica między tym parametrem funkcji stringLength (char string []) do stringLength (char * string), czy pierwszy nie powinien zezwalać na przyrost (string = string +1), który ma komentarz do kodu poniżej?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int stringLength(char string[]) {
    int length = 0;
    while(*string) {
        string = string + 1; // I can do it here
        length++;
    }
    return length;
}

int main(void){
    char s[] = "HOUSE";
    s = s + 1;  // I can not do it here
    printf("%s\n", s);
    printf("%d\n", stringLength(s));
}

questionAnswers(1)

yourAnswerToTheQuestion