C语言结构体函数的返回值是结构体结构体变量中的信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言结构体函数的返回值是结构体结构体变量中的信息相关的知识,希望对你有一定的参考价值。

万一成员个数是大于1的,那岂不是函数返回只会有多个。但是C语言函数只能有一个返回值啊。还有有些程序里在最后写一个return ;并没有写0或1,而是什么都没写。这样写的作用是什么?

你说的这种情况,函数返回的是整个结构体,无论这个结构体中包含了多少个成员,一个结构体就只是一个变量(结构体本身就是一个变量,无论它包含了多少个成员)。这样,函数返回一个结构体就意味着函数把结构体中所有的成员都返回了。C语言函数的确只能有一个返回值,用返回结构体的方式就很好地解决了需要返回多个返回值的问题。
return后面没有0或1,说明这个函数是void类型的,这类函数本来就不需要有返回值,这里的return的意思并不是要返回某个值,而是退出这个函数的意思。追问

O(∩_∩)O谢谢

参考技术A 可以返回一个结构类型指针,这样就可以在main函数中访问其他函数中定义的结构的所有成员。。。比如如下代码:
#include <stdio.h>
struct stu

int num;
char name[10];
;
typedef struct stu Node;
void* func()

Node *p;
char ch[]="Dani";
p->num = 20;
printf("请输入名字:");
gets(p->name); //输入名字
return (Node*)p; //返回Node型的指针

int main()

Node *q;
q = func(); //将func()函数返回的指针传给q
printf("num = %d name = %s\n",q->num,q->name);
return 0;
追问

O(∩_∩)O谢谢

c语言中的指针类型属于原子类型还是结构类型?

这个要看什么指针
如果是char *就是原子类型的
结构体的指针就是结构类型
但是要注意各种类型的指针变量所占内存一样。
参考技术A c语言中数据类型可分为原子类型和结构类型两大类,而整型、字符型、指针、枚举值、逻辑值都属于原子类型 参考技术B 原子类型 参考技术C

指针是指针类型,它就是一个单独的类型。如果把结构类型归纳为可以是多个类型的拼凑的话,那么结构体和共用体可以划分为结构类型。指针类型则不在这一类中!

参考技术D 原子类型的值是不可分解的,如C语言中的标准类型(整型,实型,字符型)及指针。

以上是关于C语言结构体函数的返回值是结构体结构体变量中的信息的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何返回结构体数组

c语言函数能不能返回结构体

C语言中,return语句怎么样返回一个数组?

在C语言中,怎么样定义结构体数组为全局变量?定义一个无返回值的函数,但是函数有参数可以吗?

c语言中结构体变量做函数参数的问题

c语言中的指针类型属于原子类型还是结构类型?