文章目录
- 前言
- 点运算符(.)
- 箭头运算符(->)
- 总结
前言
在C语言中,. 和 -> 都是用来访问结构体成员的运算符,但它们的使用场景和含义有所不同。
提示:以下是本篇文章正文内容,下面案例可供参考
点运算符(.)
点运算符(.)用于访问直接存储在栈或自动变量中的结构体成员,或者当结构体成员是某个变量的组成部分时。
当你有一个结构体变量,并且这个变量是在栈上分配的,你可以直接使用点运算符来访问其成员。
typedef struct {int x;int y;
} Point;int main() {Point p = {10, 20};printf("x: %d, y: %d\n", p.x, p.y); // 使用点运算符访问成员return 0;
}
箭头运算符(->)
箭头运算符(->)用于通过指向结构体的指针访问结构体成员。
当你有一个指向结构体的指针时,你需要使用箭头运算符来间接访问结构体的成员。
typedef struct {int x;int y;
} Point;int main() {Point p = {10, 20};Point *ptr = &p;printf("x: %d, y: %d\n", ptr->x, ptr->y); // 使用箭头运算符访问成员return 0;
}
在这个例子中,ptr 是一个指向 Point 类型结构体的指针,因此我们需要使用 -> 来访问结构体内的成员。
总结
当你直接使用结构体变量时,使用点运算符 .。
当你通过指针访问结构体成员时,使用箭头运算符 ->。