C语言中 结构体作为函数参数

书上写着“Status InitList_Sq(SqList &L) ”,SqList是一个定义好的结构体,可以直接把SqList L作为参数么?
还有SqList &L的意思是取这个结构体的首地址么,真正调用这个函数的时候应该怎么输入啊?

1.可以把结构体作为参数啊,
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。

3.真正调用的时,如下:
SqList tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵追问

如果定义函数的时候去掉&,变成Status InitList_Sq(SqList L)。是不是实参的值就不会被函数修改了?

追答

是这样的,使用引用就是想修改实参的值,如果去掉了引用,那么就是单纯的使用实参的值,而不是修改!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-27
可以直接用SqList L。SqList& L中的& 并不是取地址的意思,是引用的意思。追问

如果定义函数的时候去掉&,变成Status InitList_Sq(SqList L)。是不是实参的值就不会被函数修改了?

追答

是的。引用的最主要作用,就是在函数传参时,传递的是实际参数,相对于非引用传参,它因为使用实际参数,少去了一份拷贝。因而效率和空间都有提升。

第2个回答  2013-08-27
这是传引用的意思,不是取地址,这个好像是c++里的c里面没有引用
相似回答