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

时间:2017-03-31 10:56:57

标签: 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;
}

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

1 个答案:

答案 0 :(得分:5)

increment(char *c)中,您创建了一个新指针c,该指针指向同一个对象p,但它们相同,它们只是指着同样的事情。如果你增加一个,另一个保持不变。

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