如果在其他函数中递增,则指针不递增

Meg*_*raj -3 c pointers

#include <stdio.h>

increment(char *c)
{
    c++;
    c++;
    printf("works 'n' %c \n", *c);
}

int main()
{

    char *p;
    char mon[10] = "Monday";
    p = mon;
    increment(p);
    printf("expecting 'n' %c \n", *p);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果字符缓冲区指针在其他函数中递增,则在退出函数后它将不会反映出来.

izl*_*lin 5

increment(char *c)你创建一个c指向同一个对象的新指针p,但它们一样,它们只是指向同一个东西.如果你增加一个,另一个保持不变.

如果要增加指针p,则需要指向此指针的指针,将其传递给函数并更改p而不是本地副本.