如何增加指向字符数组的指针的位置

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

本文关键字:数组 字符 指针 位置 何增加 增加      更新时间:2023-10-16

我有以下功能:

void mon_strlen(char *s){
    printf("Contenue: %cn",*s);
    s++; //here
    printf("Contenue: %cn",*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

还是我的逻辑错了?

在代码中,更改

    s=str[0]; 

    s=str;

    s=&str[0];

并调用mon_strlen()作为

mon_strlen(s);

要使main()中的更改可用,您需要将一个指针传递给类似的指针

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

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

void mon_strlen(char **s)

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

main()中,你需要像这个一样通过str

mon_strlen(&str);