原始代码:
int main()
{
void strfunc(char *s);
char string[10];
strfunc(string);
return 0;
}
void strfunc(char *s)
{
char *temps;
*s = getchar();
temps = s;
*(s+1) = '\0';
printf("%s\n", s);
printf("%s\n", temps);
}
运行结果(没有任何错误):
之后我将
*(s+1) = '\0';
改成
*s++ ='\0';
运行结果出错,结果如下:
所以我想请教大家一个问题,** *(s+1) = '\0';与 *s++ ='\0';**这两者不都是将指针s的地址向后移动一个字符的长度吗?为什么结果却完全不同呢?