struct Person* current和struct Person** current的区别
时间: 2024-09-27 16:17:35 浏览: 22
`struct Person *current` 和 `struct Person **current` 两者都是指针类型,但在用途和含义上有所不同。
1. `struct Person *current` 是一个指向 `struct Person` 类型结构体的指针。这意味着`current` 变量存储的是另一个结构体变量的地址,你可以通过它访问或修改该结构体中的数据。例如:
```c
struct Person {
char name[50];
int age;
};
struct Person *current; // 声明一个指向Person的指针
current = &myPerson; // 将指针指向某个已定义的Person实例
```
2. `struct Person **current` 则是一个指向 `struct Person` 指针的指针。也就是说,`current` 存储的是另一个 `struct Person *` 的地址。这种情况下,你可以通过它间接访问到实际的 `struct Person` 实例。例如:
```c
struct Person **current; // 声明一个指向Person指针的指针
current = &pointerToMyPerson; // 将指针指向指向Person的指针
(*current).name = "John Doe"; // 通过指针操作原始Person实例的name字段
```
总结一下:
- 第一种情况(`*current`)直接操作单个结构体实例。
- 第二种情况(`**current`)用于处理动态数组或链表等,间接访问并管理多个结构体实例。
阅读全文