❮ C 嵌套结构体(structs)
C 联合体 ❯
C 结构体和指针
更新于 2026/3/10 5:20:49
结构体和指针
你可以使用指针来处理结构体,从而提高代码效率,尤其是在将结构体传递给函数或更改其值时。
要使用指向结构体的指针,只需添加 * 符号,就像使用其他数据类型一样。
要访问其成员,您必须使用 -> 运算符,而不是点 . 语法:
示例
// 定义一个结构体
struct Car {
char brand[30];
int year;
};
int main() {
struct Car car = {"Toyota", 2020};
// 声明一个指向该结构体的指针
struct Car *ptr = &car;
// Access members using the -> operator
printf("Brand: %s
", ptr->brand);
printf("Year: %d
", ptr->year);
return 0;
}
亲自试一试 »
将结构体指针传递给函数
以下是如何将结构体指针传递给函数并更改其值的方法:
示例
struct Car {
char brand[30];
int year;
};
// 该函数接受一个指向 Car 结构体的指针,并更新年份。
void updateYear(struct Car *c) {
c->year = 2025; // Change the year
}
int main() {
struct Car myCar = {"Toyota", 2020};
updateYear(&myCar); // 传递一个指针,以便函数可以更改年份。
printf("Brand: %s
", myCar.brand);
printf("Year: %d
", myCar.year);
return 0;
}
亲自试一试 »
为什么要使用结构体指针?
在以下情况下,使用结构体指针会很有帮助:
你想避免复制大量数据。
与其复制整个结构体,不如只传递一个指针。这样可以加快程序运行速度并减少内存占用。
你想在函数内部修改值。
如果你将指向结构体的指针传递给函数,该函数就可以修改原始值。
你想使用内存分配动态创建结构体。
使用指针,你可以使用 malloc() 在程序运行时创建结构体。
你将在后面的章节中学习更多关于 内存管理 的内容。
提示: 如果您正在处理大型程序或大量值,结构体指针可以帮助您编写更简洁、更高效的代码。
❮ C 嵌套结构体(structs)
C 联合体 ❯