
正文
c语言用函数输入结构体,c语言函数输入结构体数组
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言可以对函数输入一个结构体吗
1、以前没考虑过,刚才试了一下可以。不过不知道你说的是哪种定义,是定义一种结构体的类型,还是定义一个结构体的变量。
2、参数类型改成 void ,传的时候传指针,使用的时候再强制转换成想要的类型。
3、不能,只能放数据,想要放函数的话,搞一个指向函数的指针,把指针放进结构体里就可以了。
相关问答
Q1: C语言问题:函数里可以定义结构体吗?
以前没考虑过,刚才试了一下可以。不过不知道你说的是哪种定义,是定义一种结构体的类型,还是定义一个结构体的变量。
可以的。结构体也是类型一种,只不过是自定义类型。用来定义变量可以定义在任何位置,包括局部变量。定义方法和普通类型,如int, 相同。比如 struct AA test;这样就可以了。
函数里定义的结构体是局部变量,在这个函数外是不能使用的。你要在函数外定义成全局变量。
可以在外部定义结构体类型,然后在主函数内部定义该类型的变量。在输入输出函数调用时,以结构体变量指针做为参数传递。参考代码如下:include stdio.hstruct test{ int a;};//定义结构体类型struct test。
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。
结构体类型作为函数类型,表示函数返回一个结构体对象。这里sum拼写错误,应该是大写Sum。
Q2: C语言中怎么给一个结构体用scanf进行赋值?
则把d赋予a, (空格)赋予b,e赋予c。因为%c 只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此把 作为下一个字符送给b。
实际上,用scanf对通过指针引用的结构体变量赋值与常规的scanf用法没有差异。
应该是char k[]= snooker; char e[] = us8;赋值可以用strcpy这个函数。比如有:struct table t;strcpy(t.type, k); 就是把k复制到t的type中。注意用的时候保证type足够长。接下来按照你的逻辑写就好。
结构体不可以用scanf,strcpy,memcpy等函数赋值。但是一般socket编程中能用到。方式为两边定义一样的结构体(以你的结构体为例)memcpy(buff,ps,sizeof(ps));send(buff);接收端可以recv(ps)直接用结构体接收。
Q3: c语言中如何用子函数调用结构体中的变量实现数据的输入与输出。
可以在外部定义结构体类型,然后在主函数内部定义该类型的变量。在输入输出函数调用时,以结构体变量指针做为参数传递。参考代码如下:include stdio.hstruct test{ int a;};//定义结构体类型struct test。
c语言中,所有的输入函数都共用同一个输入缓冲区,我们从键盘键入数据时,其实是将输入写入缓冲区中,当我们按下回车键时,scanf()函数从缓冲区中读取输入,刷新缓冲区。
C语言是通过printf()函数和scanf()函数来进行输入和输出的。printf()格式化输出函数,C语言标准库函数,在 stdio.h 中定义。一般用于向标准输出设备按规定格式输出信息。
C语言的结构体是一组数据的组合,并不是简单的单一类型。所以在查找和输出的时候,均不能直接操作,而是要进行变通。1 查找。
C 语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。
关于c语言用函数输入结构体和c语言函数输入结构体数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







