在C语言中,-> 操作符通常用于 : 访问结构体指针所指向的成员。它是一种比.
操作符更间接的方式来访问结构体成员。
当我们有一个指向结构体的指针时,我们可以使用 ->
操作符来访问该结构体的成员。
#include <stdio.h>
// 定义一个结构体
struct Student {
char name[50];
int age;
};
int main() {
// 创建结构体变量
struct Student student = {"Alice", 20};
// 创建指向结构体的指针
struct Student *ptr = &student;
// 使用 "->(箭头操作符)" 和".(点操作符) "访问结构体成员
printf("Name: %s\n", ptr->name); //
printf("Age: %d\n", student.age); //
// 修改结构体成员
ptr->age = 21;
printf("Updated Age: %d\n", ptr->age);
return 0;
}
1. 编译器优化
现代编译器(如 GCC、Clang 等)通常会对这两种操作进行优化。尽管 .(点操作符)
和 ->(箭头操作符)
在表面上看起来有不同的语义,但编译器可以在底层生成几乎相同的机器码。这意味着在大多数情况下,性能差异可以忽略不计。