【发布时间】:2019-07-22 09:55:32
【问题描述】:
我有这个代码:
typedef struct _structVar{
int myArray[10];
} structVar;
structVar MyStruct;
然后我通过引用函数来传递结构:
myFunct(&MyStruct);
如何访问 MyFunct 中的数组元素?
void myFunct(structVar *iStruct){
for(char i=0; i<10; i++)
(*iStruct)->myArray[i] = i; //Fix Here
}
感谢您的帮助。
【问题讨论】:
-
只要
iStruct->myArray[i] = i;就可以了。 -
*iStruct是结构对象本身,而不是指向结构的指针。 “箭头”运算符->仅对指针进行操作(它意味着取消引用)。 -
请记住,C 根本没有传递引用,只有传递值。您按值传递指针,这在某种程度上可以看作是模拟按引用传递,但它仍然不是正确的引用传递。
-
@Someprogrammerdude:模拟通过引用传递是通过引用传递。 C++ 采用了内置的按引用传递,但这并没有改变这样一个事实,即如果您通过值传递一个事物 X,该事物 X 通过指向它来引用事物 Y,那么您已经传递了一个对 Y 的引用。
标签: c arrays pointers struct member-access