A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

前天学的结构体怎么传递参数

1 个回复

倒序浏览
传结构体地址与传结构体指针二者都可以作为传出参数,因为接受函数必须为其定义一个结构指针来接收,这样在函数内就可以修改结构体,在这点上二者没有区别。  定义结构体指针未分配地址空间就作为参数传递会,如果你想把它作为传出参数的话, 你必须这么写; void get(struct  student **p); //用p来接收 main() {   struct student *a;  get(&a); } 这样你也能得到你想要的结果。当然你需要在get()函数中用malloc()为其 动态分配内存空间。  你是想知道接收函数的结构体是如何分配的吗? 在接收函数中理论上他会在它自己的函数栈帧复制一份实参结构体拷贝,如果你传的是结构体本身! 这样你对结构体的修改不会对实参有影响。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马