指針和數組
下面的代碼怎么在編譯器中是有錯的
#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]
如果不可以要怎么聲明才行(有時候要用數組有時候要用指針怎么替換)
下面的代碼怎么在編譯器中是有錯的
#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]
如果不可以要怎么聲明才行(有時候要用數組有時候要用指針怎么替換)
2015-10-02
舉報
2015-10-04
好吧 我現在懂了 用p[1]=n;
2015-10-04
那怎么把數據放到p+1的地址里呢
2015-10-02
若有錯誤或遺漏,請各位同學糾正或補充,多多見諒
2015-10-02
*(p+1)先將指針右移一位,再取所指向變量的值,但是內存無值,給了個隨機數;
p是存放的內存地址;
p+1是p所存放的內存地址再加4個字節,就從12變16了。一個整型占4個字節。