线性表及其暴露的编程问题

2018-06-25  本文已影响7人  夕阳下的不回头

首先是顺序存储线性表 

太久没用过结构体指针的我出现了问题

不是一个顺序线性表该有的样子。。是为了看看操作结构体内的数据和指针到底能不能一样写

证明是能一起写的  到底用.还是->是由你的结构体是结构体变量还是指针决定的  而不是结构体内部的东西

上述代码中  P作为一个结构体的指针  本来应该是*P一下才是当前结构体的

故 应写成(*P).Data[0]=0;

但是 这里提一嘴->和*的区别

a->b 的含义是 (*a).b

所以我们发现个问题

操作结构体的成员的时候

定义的结构体如果是指针,访问成员时就用->

就像我们使用Creat_List()的那次  返回的是一个结构体指针

如果定义的是结构体变量,访问成员时就用.

struct List List2

这是个结构体变量

. 是结构体成员运算符

-> 是指针运算符

函数传参的时候  结构体与普通变量并无不同 所以我们其实说 

传参的时候使用结构体指针  即在函数里用结构体指针操作结构体变量

这样才是操作的主函数中的结构体变量

反之如果传入的是结构体变量

那么在函数中操作的实质上是堆栈中的一个传入结构体变量的复制品

并不影响主函数中的结构体变量

上一篇下一篇

猜你喜欢

热点阅读