读书人

c语言函数参数能用结构体变量当参数吗

发布时间: 2012-02-06 15:52:45 作者: rapoo

c语言函数参数能用结构体变量当参数吗?
我的意思是能这样写吗?

C/C++ code
typedef struct{    ElemType * elem;    int length;    int listsize;}SqList;Status InitList_Sq(SqList L){                      //................}Status InitList_Sq(SqList *L){            //..............}

如果能的话那么写函数时一般用上面的写法还是下面的写法呢?比如我要调用elem成员
上面的写法是L.elem 下面的写法是*(L).elem 这两种写法有什么区别呢?

[解决办法]
前面一个貌似就是声明一个结构体,并拷贝传入的结构体给这个声明的结构体,就和用局部变量一样,只不过初始值和传入的结构体一样罢了。
后面一个是指向结构体的指针,你对这个结构体做的修改,会影响到传入的结构体的内容,也就是上一级函数中的内容。


如果你只是需要结构体成员的值的话,就用前面的,如果你需要对这个结构体进行修改的话,就用后面一个。

就这么多了。
[解决办法]
探讨
前面一个貌似就是声明一个结构体,并拷贝传入的结构体给这个声明的结构体,就和用局部变量一样,只不过初始值和传入的结构体一样罢了。
后面一个是指向结构体的指针,你对这个结构体做的修改,会影响到传入的结构体的内容,也就是上一级函数中的内容。


如果你只是需要结构体成员的值的话,就用前面的,如果你需要对这个结构体进行修改的话,就用后面一个。

就这么多了。

读书人网 >C++

热点推荐