下面的代码怎么在编译器中是有错的
#include <stdio.h>
int main()
{
    int m=1;
    int *p=&m;
    int n=2;
    p+1=&n;
    printf("%d\t%d\n",*p,*(p+1));
    return 0;
}指针和数组能不能互相替换比如直接在上文printf里写p[0],p[1]
或者直接用p+1代替数组p[1]
如果不可以要怎么声明才行(有时候要用数组有时候要用指针怎么替换)
好吧 我现在懂了 用p[1]=n;
那怎么把数据放到p+1的地址里呢
若有错误或遗漏,请各位同学纠正或补充,多多见谅
#include <stdio.h>
int main()
{
    int m = 1;
    int n = 2;
    int *p;
    p = &m;
    printf("%d\n%d\n%d\n%d\n%d\n",*p,*p+1,*(p+1),p,p+1);
    return 0;
}
*(p+1)先将指针右移一位,再取所指向变量的值,但是内存无值,给了个随机数;
p是存放的内存地址;
p+1是p所存放的内存地址再加4个字节,就从12变16了。一个整型占4个字节。