C语言中的结构体
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
定义与声明
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。
结构体成员的引用
有两种方式,英文的句点 . ,一个减号加一个大于号 ->。
当结构体是一个指针时要引用结构体的成员就用->而如果不是指针就用.。
如:
struct msg_st {
int a
}
struct msg_st msg;
struct msg_st *ms
msg.a = 10
ms->a = 20
指向结构体成员运算符 : (->) 从外部看是包含了一个解指针(*)所以要对指针进行操作
例如:
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,
不知道我的表达能力如何???
如有不懂,请给我发消息