首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c语言函数参数能用结构体变量当参数吗?解决思路

2012-02-06 
c语言函数参数能用结构体变量当参数吗?我的意思是能这样写吗?C/C++ codetypedef struct{ElemType * elemi

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 这两种写法有什么区别呢?

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


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

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


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

就这么多了。

热点排行