係統粉 > 電腦問答 > 其他問答

已解決關於指針代碼問題

提問者:小池寒淥欲生漪  |  瀏覽次  |  提問時間:2017-03-22  |  回答數量:4

#include <stdio.h> void main() {         int * p,i,a[10];         p=a;         for(i=0;i<10;i++)                 scanf("%d",p++);         for(i=0;i<10;i++,p++)                 printf("%d ",* p);             printf("\n"); } 出現問題的代碼 應該是處在6,7行。 別人說:經過第一個for循環讀入數據後,p已指向a數組的末尾。 但是就是理解不了 最明顯一點:經過第一個for循環讀入數據後,怎麼突然跳到 a數組的末尾? 各位師兄 幫幫忙解釋一下下!關於指針代碼問題(圖1)

已有4條答案
sunny蛋丶白

sunny蛋丶白

回答數:33  |  被采納數:20

不是有p++嗎
2017-03-22 07:31:22
讚 3
可攻可受吃貨女

可攻可受吃貨女

回答數:211  |  被采納數:88


指針在執行到數組邊界之後,要是繼續執行。那麼隻會輸出不確定值。要想輸出之前輸入的值,那麼指針要回到首地址吧 ?所以在scanf 後麵加上 P=a。就好了是吧?
2017-03-22 11:19:31
讚 21
紅塵一末

紅塵一末

回答數:135  |  被采納數:22


2017-03-22 13:55:58
讚 13
賤賤牧

賤賤牧

回答數:180  |  被采納數:59


嗯嗯 明白了。謝謝 (1)
2017-03-22 12:16:53
讚 18
相關問答
最新其他問答
解決方法