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

如果不用指针呢... 如果不用指针呢 展开
 我来答
小白聊电子科技
高粉答主

2020-05-15 · 专注电子数码问题解答
小白聊电子科技
采纳数:775 获赞数:75396

向TA提问 私信TA
展开全部

c语言函数可以返回结构体,操作方法如下:

1、首先在电脑中打开visual studio新建项目,给这个结构体取个名字叫student。

2、然后添加变量,如下图所示。

3、然后给结构体类型指针p申请堆空间,如下图所示。

4、接着使用for循环给结构体赋值,如下图所示。

5、最后在通过for循环打印输出,这样就完成就结构体的基本创建,结尾不要忘了使用free(p):释放申请的堆空间。

White_MouseYBZ
推荐于2017-10-04 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6338万
展开全部

能。主调函数必须用相同类型的结构体变量接收!举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
struct ABC{
    char name[20];
    int n;
};
struct ABC myfun(void){
    struct ABC x={"Lining",99};//声明一个结构体局部变量x并初始化
    return x;//返回局部变量结构体x
}
int main(void){
    struct ABC y=myfun();//声明一个同类型结构体变量y并将函数返回值赋给它
    printf("%s %d\n",y.name,y.n);//打出来看看
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8e1a48c92
2008-11-02 · TA获得超过1322个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:502万
展开全部
当然能返回结构体的,不过是需要用指针来返回的.

下面我编写一个简单的实例,你就清楚了

#include<stdio.h>

struct lab
{
char a;
char b;
char c;
};

struct lab Lab_Val={0,1,2}; //声明结构体变量
struct lab *pLab; //声明结构体指针

//----返回结构体指针,之后就可以用该指针访问结构体中所有的变量了
struct lab *test(struct lab *pStruct)
{
pStruct->a=pStruct->a+1;
pStruct->b=pStruct->b+2;
pStruct->c=pStruct->c+3;
return(pStruct);
}

//==============================================================

void main(void)
{
char i,j,k;
pLab = test(&Lab_Val); //调用函数
i=pLab->a; //引用指针,i=1
j=pLab->b; //j=3
k=pLab->c; //k=5
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2008-11-02 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5065万
展开全部
可以.

例如常用的typedef 可以把结构体定义成一种新的"变量类型",语法上就同int,float这种简单变量类型一样. c语言函数就能return了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mekinglong
2008-11-02 · TA获得超过213个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:205万
展开全部
当然能呀
只要在定义函数时,返回类型声明你要返回的类型就可以呵
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式