
正文
c语言函数参数传递结构体 c语言中参数传递
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中,结构体作为函数参数传递,详解?
1.可以把结构体作为参数啊,
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。
3.真正调用的时,如下:
SqList
tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵
相关问答
Q1: 关于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) ;
}
Q2: C语言函数参数传出怎么用
struct Student st;
void function(struct Student st);这种形式就是传递地址;
void fuction2(struct Student * pst);这种形式就是传递结构体c语言函数参数传递结构体的地址;
调用这两个函数的形式如下c语言函数参数传递结构体:
function(st);
fuction2(st);
一般推荐第二种方式c语言函数参数传递结构体,因为第一种方式需要传递整个结构体c语言函数参数传递结构体,需要开辟sizeof(struct student)这么大的内存空间,开销太大,第二种方式则只需要开辟四个字节的内存,用来存放地址;
Q3: c语言能向函数里传递任意一个结构体吗?
参数类型改成
void*
,传的时候传指针,
使用的时候再强制转换成想要的类型。注意类型安全
Q4: C语言,实参向形参传递的是一个结构体变量,形参的改变对于实参不是没有影响吗?
没有影响 但是c语言函数参数传递结构体你没注意看题
你如果只是单纯的f(a) 那么无论如何a都不会改变
但是你注意看 写的是 a = f(a) 也就是说 函数里的另外一个结构体 返回之后重新给a赋值了
所以a值就改变了c语言函数参数传递结构体,并不是通过地址改变的, 而是直接赋值改变
c语言函数参数传递结构体的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中参数传递、c语言函数参数传递结构体的信息别忘了在本站进行查找喔。






