用c语言建立一个链表,存储1,2,3,4和你学号后三位数,观察内存地址变化情况。
时间: 2024-09-17 22:03:30 浏览: 46
在C语言中,我们可以创建一个结构体来表示节点,并利用链表数据结构存储整数。首先,我们定义一个结构体Node,包含一个整数值和一个指向下一个节点的指针:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int value;
struct Node* next;
} Node;
void printMemoryAddresses(Node* head) {
Node* current = head;
while (current != NULL) {
printf("Value: %d, Memory Address: %p\n", current->value, current);
current = current->next;
}
}
int main() {
// 创建链表节点,存储1, 2, 3, 4和学号后三位数
Node* node1 = malloc(sizeof(Node));
node1->value = 1; // 学号后三位假设为001
node1->next = NULL;
Node* node2 = malloc(sizeof(Node));
node2->value = 2; // 学号后三位假设为002
node2->next = node1;
Node* node3 = malloc(sizeof(Node));
node3->value = 3; // 学号后三位假设为003
node3->next = node2;
Node* node4 = malloc(sizeof(Node));
node4->value = 4; // 学号后三位假设为004
node4->next = node3;
// 链表头部
Node* head = node4;
printMemoryAddresses(head);
return 0;
}
```
当你运行这个程序时,它会打印出每个节点的值及其对应的内存地址。由于分配给每个节点的空间以及它们之间的顺序都依赖于系统的内存管理,所以每次分配新的节点并链接到现有节点时,内存地址会有所不同。
阅读全文