c语言结构体传给其他函数 c语言结构体传参数

C语言定义结构体并赋值后,怎样把整个结构体传递给子函数?

使用堆内存,然后传递一个指向这个结构体的指针就可以了,

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了宝山免费建站欢迎大家使用!

或者直接向子函数传递结构体变量.

比如:

#include stdio.h

#include malloc.h

typedef struct STRC_def{

int i;

int j;

}STRC;

int Func1(STRC * pSTRC);

int Func2(STRC aSTRC);

int main()

{

STRC * a =(STRC *)malloc(sizeof(STRC));//使用堆内存

STRC b;//使用栈内存

a-i=0;//初始化

a-j=0;

b.i=0;

b.j=0;

Func1(a);//传递指针

Func2(b);//传递变量

printf("a: %d %d\nb: %d %d\n",a-i,a-j,b.i,b.j);//结果应该是 a: 1 2 \n b: 0 0

//因为传递指针使用的是同一个存储位置,而传递变量使用的是内容复制的存储位置

return 0;

}

int Func1(STRC * pSTRC)

{

pSTRC-i=1;

pSTRC-j=2;

return 0;

}

int Func2(STRC aSTRC)

{

aSTRC.i=3;

aSTRC.j=4;

return 0;

}

C语言在一个函数里面定义了一个结构体,怎么在另外一个函数里面使用?

在另外一个函数里面使用的源代码如下:

#include"stdio.h"

#include "conio.h" //-------添加这个头文件,因为getch()函数来自它,否则编译会有警告

struct student   /*定义结构体*/

{

void main()

{

void data_in(struct student putin[]);

void data_out(struct student *p);

void data_pout(struct student *s1);

data_in(pers);      /*调用指针输入函数*/

data_out(sp);     /*调用指针输出函数*/

data_pout(sp);   /*调用函数名输出函数*/

getch();

}

扩展资料

1、函数是C语言的基本组成元素,当我们调用一个函数时,需要明确函数名和实参列表。实参列表中的参数可以是常量、变量、表达式或者空,并且各参数之间要使用英文逗号分隔开来。

2、在C语言中,函数的定义是独立的,一个函数不能定义在另一个函数内部。但在调用函数时,可以在一个函数中调用另一个函数,这就是函数的嵌套调用。接下来我们通过一个案例来演示函数的嵌套调用。

C语言:如何把自己定义的结构体数组传到调用函数

这是文件包含的问题,你把find函数也放到main.c文件里,就可以了,否则find函数不认识你定义的结构体


名称栏目:c语言结构体传给其他函数 c语言结构体传参数
转载注明:http://myzitong.com/article/doipjsp.html