C语言中 结构体作为函数参数
发布网友
发布时间:2022-05-11 06:40
我来回答
共3个回答
热心网友
时间:2023-10-05 02:33
1.可以把结构体作为参数啊,
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。
3.真正调用的时,如下:
SqList tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵追问如果定义函数的时候去掉&,变成Status InitList_Sq(SqList L)。是不是实参的值就不会被函数修改了?
追答是这样的,使用引用就是想修改实参的值,如果去掉了引用,那么就是单纯的使用实参的值,而不是修改!
热心网友
时间:2023-10-05 02:34
可以直接用SqList L。SqList& L中的& 并不是取地址的意思,是引用的意思。追问如果定义函数的时候去掉&,变成Status InitList_Sq(SqList L)。是不是实参的值就不会被函数修改了?
追答是的。引用的最主要作用,就是在函数传参时,传递的是实际参数,相对于非引用传参,它因为使用实际参数,少去了一份拷贝。因而效率和空间都有提升。
热心网友
时间:2023-10-05 02:34
这是传引用的意思,不是取地址,这个好像是c++里的c里面没有引用
关于c语言中的结构体数组作为函数参数传递的
1、结构体数组传给指针,实质上是不可能的,本质上传的是数组首地址,根据偏移来操作数组,这样看起来好像是真在操作数组一样。就和普通指针一样使用,只不过它是结构体数组。2、例程:typedef struct Student{ char name[10] ; int age ;}Student;#define LEN 10 //print all Student infoma...
C语言中结构体数组名作为函数参数的问题
函数定义和声明的参数应该是: int oid_check(struct snmp_seq sp, struct rmc1207 * ramp, int BUFFER_SIZE);函数调用: flag=oid_check(sp, ramp, BUFFER_SIZE);--- 在这里, ramp 是结构体数组的指针
结构体变量作为函数参数有几种传递方式?详细说明各自的优缺点。_百度知...
在C中结构体变量作为函数参数只有一种传递方式:值拷贝!主要缺点是传递时耗长,且函数中对结构体的操作结果一般是带不到主调函数中的;用结构体指针传递可以避免这些缺点,但那就不是“结构体变量”作为函数参数而“结构体指针”作为函数参数了。指针传递的缺点是容易把初学者搞糊涂,几乎无其他缺点。C+...
C语言怎么用结构体变量的成员做为函数参数,有一个例子我才能明白_百 ...
include <stdio.h>typedef struct student{ char sno[32]; char sname[32];}STU;void PrintName(char *name){ printf("sname : %s\n", name);}int main(){ STU ss = {"031202523", "aab"}; PrintName(ss.sname); return 0;} ...
C语言 定义结构体 作为函数参数 总是报错显示 unknown typename 编...
你定义的void convert(carte_t *list);实在结构体定义之前,导致error: unknown typename 'carte_t';需要将函数定义在结构体之后!以下修改#include <stdio.h>#include <stdlib.h>#include<math.h>typedef struct carte{ double x; double y;}carte_t;typedef struct polar{ double l; ...
把一个结构体作为函数参数,此参数声明为什么类型呢?
比如定义一个结构体如下:struct structA{};则该结构体作为函数参数时,使用struct structA paramName声明该结构体参数,其中paramName为参数名。若声明的结构体如下:typedef struct structA{}STRUCTA;则作为函数参数时,可以直接使用STRUCTA paramName声明该结构体参数,其中paramName为参数名。
结构体指针与结构体变量用作函数参数时有什么区别,在用法上
(1)结构体指针作为函数参数时,调用时传递的是指向一个结构体变量的指针(即结构体变量的地址);结构体变量作为函数参数时,调用时传递的结构体变量本身。(2)以下代码显示了调用时的区别 include <stdio.h> /* 定义结构体类型Point */ typedef struct { int x;int y;} Point;void fun1(Point...
c#结构体做函数参数的问题
不要直接将两个结构体赋值。struct A1;struct A2;A1=A2;这个是错的,可能出现类型不对等问题。两结构体做赋值可以这样做:struct A1;struct A2;A1.a=A2.a;A1.b=A2.b;有问题可以追问。
结构体作函数参数是传值吗
是传值,与一般的数据类型一样,除非你用指针传地址,或引用调用.其实结构体也是一种数据类型,只不过是自己定义的,而不是系统提供的.应用时,要定义该类型的变量或指针
c语言,当函数参数为结构体变量时,在主函数main中调用该函数时,该函数的...
已经定义了struct T了啊, 里面有3个int型变量a,b,c;所以你可以创建一个T对象 T t;t.a = 1;t.b = 2;t.c = 3;gameplay(&t);或者直接定义指针也行 T *t; t->a = 1; t->b = 2; t->c = 3; gameplay(t);