C语言 指向结构体成员运算符

Python08

C语言 指向结构体成员运算符,第1张

指向结构体成员运算符 : (->) 从外部看是包含了一个解指针(*)所以要对指针进行操作

例如:

typedef struct

{

int data[20]

int length

}Sqlist

Sqlist

*L

L->lenth

//同样是得到L中length的值

结构体成员运算符 : ( . )直接调用结构体中的某个成员

例如:

typedef struct

{

int data[20]

int length

}Sqlist

Sqlist L

L.length //直接调用L中length的值

L.data[3]

扩展资料:

结构体成员的点运算符(.)和箭头运算符(->)的区别:

相同点:两个都是二元操作符,其右操作符是成员的名称。

不同点:点操作符左边的操作数是一个“结果为结构”的表达式;箭头操作符左边的操作数是一个指向结构的指针。

如果一个函数的传入参数是结构体,且需要该结构体作为返回值的时候,必须采用指针传递的方式,其中对结构体赋值必须使用箭头运算符。

参考资料:

百度百科-->

菜鸟教程-C++ 运算符

我就用自己的理解给你讲一下吧

指针其实就是指向一个变量的变量,具体的说,一个指针它里面保存的是一个变量的地址,而一般的变量保存的是数据,所以指针它的本质也是变量.

指向指针的指针就是一个指针它指向另外一个指针变量,它保存的是另外一个指针的地址,指向指针的指针其实和一般的指针没什么两样,只是它保存的是另一个指针,一般的指针保存的是地址,指向指针的指针访问数据时是间接访问,是通过它保存的指针来进行访问,比一般的指针多了一个中间量,它可以进行**P的运算,而一般的指针的运算为*p,

不知道我的表达能力如何???

如有不懂,请给我发消息