如何在C语言中使用&符号来初始化单链表
时间: 2024-12-06 20:21:34 浏览: 8
在C语言中,`&`符号通常用于获取变量的地址,但在创建单链表时,特别是初始化结构体指针并作为链表节点的一部分,`&`可以用来获取新节点位置的内存地址。这里是一个简单的示例,假设我们有一个名为`Node`的结构体,它包含数据`data`和指向下一个节点的指针`next`:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义单链表节点结构
typedef struct Node {
int data;
struct Node* next; // 指向下一个节点的指针
} Node;
// 动态初始化链表节点
void createNode(Node** head, int data) {
// 使用&获取新的内存地址,并分配空间
*head = (Node*)malloc(sizeof(Node)); // 分配内存给当前节点
if (*head != NULL) {
(*head)->data = data; // 设置节点的数据
(*head)->next = NULL; // 初始化下一个节点为空
} else {
printf("Memory allocation failed.\n");
}
}
int main() {
Node* head = NULL; // 链表头指针,初始为NULL
createNode(&head, 5); // 通过引用传递head,插入值5的节点
createNode(&head, 10); // 再次调用,插入值10的节点
return 0;
}
```
在这个例子中,`&head`表示链表头指针的位置,`createNode`函数通过修改这个地址来添加新的节点到链表中。
阅读全文