c语言结构函数传递,传递函数c语言实现

C语言中,结构体作为函数参数传递,详解?

1.可以把结构体作为参数啊,

10年积累的成都网站制作、网站设计、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有翼城免费网站建设让你可以放心的选择与我们合作。

2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。

3.真正调用的时,如下:

SqList

tempStruct;

InitList_Sq(tempStruct)

这样就可以了。

呵呵

关于c语言中的结构体数组作为函数参数传递的

1、结构体数组传给指针,实质上是不可能的,本质上传的是数组首地址,根据偏移来操作数组,这样看起来好像是真在操作数组一样。就和普通指针一样使用,只不过它是结构体数组。

2、例程:

typedef struct Student

{

char name[10] ;

int age ;

}Student;

#define LEN 10 

//print all Student infomation

void fun(Student *pStu,int len)

{

int i ; 

for(i = 0 ;i  len ;++i)

{

printf("%s\t%d",pStu[i].name,pStu[i].age) ;

}

}

int main ()

{

Student stu[LEN] ;

fun(stu,LEN) ;

}

C语言结构型、函数间数据传递问题?

(1)

里传的是main里y的值,传过去的x在函数b里只是个局部对象,影响不到main里的实参y

(2)

的实质是传递了y数组的首地址,也就是y数组中唯一一个元素的地址,b函数里接受到x其实是main里y[0]的地址,所以x[0]

==

main里的y,传给scanf的变量地址也就是main里y的地址,所以y接受到了b函数中scanf的输入

2的实质是传递变量的地址,然后通过地址修改实参,1则是传递变量本身的值

c里面如果想通过形参修改实参,只能使用2的方法

void

b(struct

a

x[

])

等价于

void

b(

struct

a*

x

)

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语言结构函数传递,传递函数c语言实现
文章转载:http://hbruida.cn/article/hsdscj.html