#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;
}
对于这段代码,我知道为什么 a 和 b 的输出,但为什么指针具有相同的 a 值?
*p 是 b[0] = a[0]+1,不是吗?所以 p++ 意味着 b 的下一个地址,所以它是 b[1]=a[1]+1。
ie
*p b a
1 2 1
2 3 2
3 4 3
4 5 4
5 6 5