指针和结构 结构可以包含指针,当然也可以是一个指向同一结构其他实例的指针: 例如: struct node { struct node *next_ptr; int value; } 仔细思考一下,现在我们发现,如果我们可以动态创建 node ,那我们在内存中可以保存的数据就可以达到无限大。所以我们需要的是一个这样的程序,当用户说“我想要一个新节点”时,程序就可以创建它。当然不能用光内存。 因此我们可以创建如下程序: #include <stdio.h>
struct node { struct node *next_ptr; int value; };
struct node *first_ptr;
void add_list(int item) { struct node *new_item_ptr = malloc(sizeof(struct node)); (*new_item_ptr).value = item; (*new_item_ptr).next_ptr = first_ptr; first_ptr = new_item_ptr; }
int main() { int j = 0; int i = j; struct node *current_ptr; scanf("%d", &i); for(; j<=i; j++) add_list(j); current_ptr = first_ptr; while(current_ptr != NULL) { printf("%d\n", (*current_ptr).value); first_ptr = (*first_ptr).next_ptr; free(current_ptr); current_ptr = NULL; current_ptr = first_ptr; } current_ptr = first_ptr; return 0; } 摘自:辣妹子社区-C/C++论坛 
|