结构体和指针在C语言中是如何使用的?
时间: 2024-11-27 09:24:39 浏览: 65
在C语言中,结构体和指针是两个非常重要的特性:
**结构体(Struct)**:
结构体是用来组合不同类型数据的一种用户自定义数据类型。你可以将它们看作是包含一组成员(变量)的容器。例如:
```c
struct Person {
char name[20]; // 姓名
int age; // 年龄
float height; // 身高
};
```
结构体定义了一个Person类型的实例,如`struct Person person`。
**使用结构体**:
- 创建结构体变量:
```c
struct Person p1;
```
- 初始化结构体:
```c
memset(&p1, 0, sizeof(p1)); // 初始化所有成员为零
p1.name = "John Doe";
p1.age = 30;
p1.height = 175.0f;
```
- 访问结构体成员:
```c
printf("Name: %s, Age: %d, Height: %.2f\n", p1.name, p1.age, p1.height);
```
**指针(Pointer)**:
- 指针是一个变量,它存储另一个变量的内存地址。声明指针需要指定其指向的数据类型,如`int *ptr`表示一个可以存放整数地址的指针。
- 给指针分配内存:
```c
int num = 10;
int *ptr = # // ptr现在指向num的地址
```
- 动态内存分配(使用`malloc`):
```c
int *dynamic_ptr = malloc(sizeof(int)); // 分配内存,之后可以用动态_ptr指向
*dynamic_ptr = 5; // 写入值
free(dynamic_ptr); // 使用完后释放内存
```
- 通过指针操作结构体成员:
```c
void printPerson(struct Person *p) {
printf("Name: %s, Age: %d, Height: %.2f\n", p->name, p->age, p->height);
}
```
阅读全文
相关推荐
















