如何增加指向 char 数组的指针的位置?

How to incress position of a pointer that is pointing to a char array?

我有这些功能:

void mon_strlen(char *s){
    printf("Contenue: %c\n",*s);
    s++; //here
    printf("Contenue: %c\n",*s);
    system("PAUSE");
}

int main()
{
    char str[10]="Hello";
    char *s;
    s=str[0];
    mon_strlen(&s);
    system("PAUSE");
    return 0;
}

如何在函数 mon_strlen 中增加指针 s 的内存位置以打印:

Contenue: H
Contenue: e

还是我的逻辑不对?

要使更改在 main() 中可用,您需要像这样传递一个指向指针的指针

void mon_strlen(char **s) {
    char *ptr;
    if (s == NULL)
        return;
    ptr = *s;
    if (ptr == NULL)
        return;
    printf("Contenue: %c\n", *ptr);
    ptr = (*s)++; //here
    printf("Contenue: %c\n", *ptr);
    system("PAUSE");
}

你在 main() 中的调用就好像你的 mon_strlen() 函数有这个签名

void mon_strlen(char **s)

如果您启用警告,您的编译器会警告您。

并且在 main() 中你需要像这样传递 str

mon_strlen(&str);

在您的代码中,更改

    s=str[0]; 

    s=str;

    s=&str[0];

并将 mon_strlen() 称为

mon_strlen(s);