只是一个快速的问题。
我可以写
char string[] = "Hello world";
char *p = string;
printf("%s", p);
并将其打印Hello world
为输出。但是指针在这里是如何工作的呢?
数组中的每个点都有一个单独的内存位置,对吧?所以字符串数组长度为 12,将占用 12 个内存空间。我认为指针只能指向一个内存位置,而不是 12。指针 p 是如何实现这一点的?
使用普通数组和指针,如果你想缩放你做 *p++ 的数组,因为你正在遍历每个内存位置并打印它的值。为什么你必须在那里一个一个地遍历数组,但在这里它只是指向整个事物?
在我看来,就像使用一个(int 数组)一样,您正在递增指针,因为每个指针只能指向一个内存位置,但是对于 char 数组,它可以以某种方式指向所有这些位置。