#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[]="shevchenko ac milan";
printf("%s",&a);
}
Run Code Online (Sandbox Code Playgroud)
这是打印"shevchenko ac milan"
but
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[]="shevchenko ac milan";
printf("%s",&a+1);
}
Run Code Online (Sandbox Code Playgroud)
为什么这会打印垃圾字符?
peo*_*oro 10
&a是指向achar[20]的类型指针.
当你这样做时,&a+1你将转到char[20]内存中的下一个项目,因此你会去追求a.
你应该有一个char*:通过对它进行求和,你将进入下一个char.
要获得一个char*你可以使用a(它char*通过这样做衰败),从而a+1去下一个char.