#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)
如果字符缓冲区指针在其他函数中递增,则在退出函数后它将不会反映出来.
在increment(char *c)你创建一个c指向同一个对象的新指针p,但它们不一样,它们只是指向同一个东西.如果你增加一个,另一个保持不变.
如果要增加指针p,则需要指向此指针的指针,将其传递给函数并更改p而不是本地副本.