小编use*_*885的帖子

c指针和数组

#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)

c arrays pointers

7
推荐指数
1
解决办法
193
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1