问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C语言中的"->"操作符详解:指针与结构体成员访问

创作时间:
作者:
@小白创作中心

C语言中的"->"操作符详解:指针与结构体成员访问

引用
CSDN
1.
https://m.blog.csdn.net/qq_44776454/article/details/143000146

1.C语言中符号“->”的意义:

在C语言中,符号"->"用于指针操作,具体来说,它用于访问指针所指向的结构体或联合体的成员。这是一个操作符,通常用于简化代码,可以替代使用(*ptr).member的方式。

"->"操作符的具体用法是,当你有一个指向结构体的指针时,可以使用"->"操作符直接访问该结构体的成员。例如,如果有一个指向结构体的指针ptr,结构体中有一个成员变量member,你可以使用ptr->member来访问这个成员变量。

2.代码实例体会:

代码片段一:

#include <stdio.h>
struct Point {
    int x;
    int y;
};
int main() {
    struct Point points[] = {{1, 2}, {3, 4}, {5, 6}};
    struct Point *ptr = points;  // 指针指向结构体数组的第一个元素
    printf("初始点: (%d, %d)\n", ptr->x, ptr->y);  // 输出 (1, 2)
    ptr++;  // 递增指针,使其指向下一个结构体
    printf("递增后点: (%d, %d)\n", ptr->x, ptr->y);  // 输出 (3, 4)
    return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

初始点: (1, 2)
递增后点: (3, 4)

代码片段二:

/*定义结构体*/
struct  Data
{
int a,b,c;
}; 
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ;  /*让p指向A*/
x = p- > a;   /*这句话的意思就是 取出p所指向的结构体中包含的数据项a 赋值给x*/
/*由于此时p指向 A,因而 p->a  == A.a , 也就是1*/

"->"操作符相当于结构体类型数据成员访问方法的语法糖。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号