C语言新手求助:如何在sum方法中访问嵌套结构体的data值
正确访问BigInteger中的data值方法
嘿,作为C编程新手,别着急,咱们一步步来理清楚怎么正确拿到这个data值~
首先,先帮你梳理一下各个结构体之间的层级关系,这是正确访问的关键:
BigInteger是指向BigIntegerObj的指针BigIntegerObj里包含的是结构体实例struct List list(注意不是指针类型)ListObj(也就是这里的list)里的headnode是Node类型,也就是指向NodeObj的指针NodeObj里才是你要的data成员
你原来的代码A -> list ->headnode->data出错的原因是:A->list是ListObj结构体本身,不是指针,所以不能用->来访问它的成员,得用.操作符。
修正后的代码
BigInteger sum(BigInteger A, BigInteger B) { long data = A->list.headnode->data; // 这里可以继续补充你的求和逻辑,最后返回对应的BigInteger结果 }
再给你拆解一下完整的访问路径:
A是BigInteger(指针),用A->访问BigIntegerObj里的list成员list是ListObj结构体实例,用.headnode访问它的headnode成员headnode是Node(指针),用->data访问NodeObj里的data值
这样就能正确拿到你想要的data啦~
内容的提问来源于stack exchange,提问作者Sandeep
相关产品推荐
相关产品推荐

