#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;
}
如果字符缓冲区指针在其他函数中递增,则在退出函数后它将不会反映。
答案 0 :(得分:5)
在increment(char *c)
中,您创建了一个新指针c
,该指针指向同一个对象p
,但它们不相同,它们只是指着同样的事情。如果你增加一个,另一个保持不变。
如果要递增指针p
,则需要指向此指针的指针,将其传递给函数并更改p
而不是本地副本。