該代碼非常簡單,但我抓住了結果。 我只是玩指針算術,並想打印出陣列 ,但我得到的數組加上3個數字。那3個額外的東西從哪裏來?這段代碼片段是如何工作的?
#include <stdio.h>
int my_array[] = {1,3,5,6,73,343,34};
int *pointer_numeros;
int main (void) {
int i = 0;
pointer_numeros = my_array;
while(*pointer_numeros) {
printf("los numeros del array son %d\t %d\n\n", i++, *pointer_numeros++);
}
getchar();
return 0;
}
就其本身而言,直到你把它插入一個止動元件基於指針的迭代將無法正常工作。在類似的筆記中,有沒有人知道動態數組(你使用malloc分配的類型)如何以及在哪裏存儲它們的大小,以及靜態數組爲什麼不存儲它們的大小? – susmits 2011-06-07 21:20:13
@susmits:它是實現定義的,但你可以想象'malloc'可以在第一個元素之前立即存儲細節。靜態數組不需要存儲它們的大小! – 2011-06-07 21:35:39