c语言函数参数能用结构体变量当参数吗?解决思路
c语言函数参数能用结构体变量当参数吗?
我的意思是能这样写吗?
如果能的话那么写函数时一般用上面的写法还是下面的写法呢?比如我要调用elem成员
上面的写法是L.elem 下面的写法是*(L).elem 这两种写法有什么区别呢?
------解决方案--------------------
前面一个貌似就是声明一个结构体,并拷贝传入的结构体给这个声明的结构体,就和用局部变量一样,只不过初始值和传入的结构体一样罢了。
后面一个是指向结构体的指针,你对这个结构体做的修改,会影响到传入的结构体的内容,也就是上一级函数中的内容。
如果你只是需要结构体成员的值的话,就用前面的,如果你需要对这个结构体进行修改的话,就用后面一个。
就这么多了。
------解决方案--------------------
我的意思是能这样写吗?
- 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 这两种写法有什么区别呢?
------解决方案--------------------
前面一个貌似就是声明一个结构体,并拷贝传入的结构体给这个声明的结构体,就和用局部变量一样,只不过初始值和传入的结构体一样罢了。
后面一个是指向结构体的指针,你对这个结构体做的修改,会影响到传入的结构体的内容,也就是上一级函数中的内容。
如果你只是需要结构体成员的值的话,就用前面的,如果你需要对这个结构体进行修改的话,就用后面一个。
就这么多了。
------解决方案--------------------