我们的老师给了我们以下代码:
x = **(&d);
他的问题是:“你必须在这一行上方添加哪几行代码,才能使代码正确?”
有谁能够帮我?这条线的含义是什么?
DeiDei 的说法是有可能的,我这里多解释一下
我们在 C 中,为了简化考虑x和d不是宏。
x = **(&d);
等价于x = *d;
因为获取地址然后取消引用什么也不做
现在的问题是找到一个x = *d;
合法的上下文,因为d必须是一个指针。让说int * d;
大概也是我们的目标是没有分割故障使d需要记住一个有效的地址。让说int a; int * d = &a;
现在我们分配X与*d
这样的类型X必须兼容INT让的说int a; int * d = &a; x = **(&d);
为干净起见,我们不想访问未初始化的值,因为x最终收到了必须初始化的a的值。
int a = 0; int* d = &a; int x; x = **(&d);
DeiDei 符合要求,但当然还有很多其他解决方案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句