该代码非常简单,但我抓住了结果。 我只是玩指针算术,并想打印出阵列 ,但我得到的数组加上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