请问"结构体指针变量"在程序设计中的优点,最好举例说明!

如题所述

这两者作为函数参数,还是有很大的区别的,我说说自己的理解。
如:
typedef
struct
A{int
a;...}A;
//定义结构体A
void
Func(A
a);
//通过结构体变量传参
void
Func(A*
pA);
//通过结构体指针传参
调用函数时,因为函数参数要临时存放到栈中,若结构体变量作为参数,则需要生成一个结构体A的副本,将其存放到栈中;
而结构体指针作为变量,只需将指针pA存放到栈中即可,提高了程序的空间效率。
其次,结构体指针作为函数参数:
可以在函数中通过该指针引用结构体,当在函数中修改了结构体的成员变量后(如:pA->a
=
0),指针pA所指向的结构体本身也被改变了。
不同的是,当结构体变量作为函数参数:
在函数中可通过变量直接使用结构体,但要注意的是,如果在函数中修改了结构体的成员变量后(如:
a.a
=
0),结构体本身并未发生变化,只是副本被改变。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜