#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int a[] = {1,2,3,4,5};
int b[] = {0,0,0,0,0};
int *p = b;
for (int i =0; i < 5; i++)
{
b[i] = a[i]+1;
*p = a[i]+1;
p++;
}
for (int i = 0; i < 5; i++)
{
printf (" %i \t %i \t %i \n", *p++, b[i], a[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
对于这段代码我得到了为什么a和b的输出,但为什么指针具有相同的a值?
*p是b [0] = a [0] +1,不是吗?所以p ++意味着b的下一个地址,所以b [1] = a [1] +1.
ie
*p b a
1 …Run Code Online (Sandbox Code Playgroud)