问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求高手指教c语言函数怎么返回结构体

发布网友 发布时间:2022-04-20 04:04

我来回答

5个回答

热心网友 时间:2023-09-20 06:57

#include "stdio.h"

struct abc{

int a;

int b;

char *p;

};

struct abc myabc(void){

struct abc n;

n.a=2;

n.b=3;

n.p=(char *)0x00FF3304;

return n;

}
void main(void)

{

struct abc x={1,2,(char *)0x00FF3300},y;

y=myabc();

printf("%d %d %p\n%d %d %p\n",x.a,x.b,x.p,y.a,y.b,y.p);

}

扩展资料:

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 

C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。C++允许用户根据需要自己声明一些类型,用户可以自己声明的类型还有结构体类型(structure)、共用体类型(union)、枚举类型(enumeration)、类类型(class )等,这些统称为用户自定义类型(user-defined type,UDT)。

热心网友 时间:2023-09-20 06:57

函数是可以返回结构体的。方法如下:(其它类似)
以前以为函数的返回值只能是基本类型,但是今天被高手指出,函数的返回值可以是结构体的,特此编写了如下的测试程序:让大家见笑了。
#include <stdio.h>
typedef struct {
int a;
int b;
int c;
}str;
str change(str s)
{
s.a += 1;
s.b += 1;
s.c += 1;
return s;
}

int main(void)
{
str s1, s2;
s1.a = 1;
s1.b = 1;
s1.c = 1;
s2 = change(s1);
printf("s1.a = %d\ts1.b = %d\ts1.c = %d\n",s1.a, s1.b, s1.c);
printf("s2.a = %d\ts2.b = %d\ts2.c = %d\n",s2.a, s2.b, s2.c);
return 0;
}

热心网友 时间:2023-09-20 06:58

下面的代码告诉你一个事实:你的想法是可以实现的!
#include "stdio.h"//
struct abc{
int a;
int b;
char *p;
};
struct abc myabc(void){
struct abc n;
n.a=2;
n.b=3;
n.p=(char *)0x00FF3304;
return n;
}
void main(void){//试试正确不?
struct abc x={1,2,(char *)0x00FF3300},y;
y=myabc();
printf("%d %d %p\n%d %d %p\n",x.a,x.b,x.p,y.a,y.b,y.p);
}
接收结构变量y必须与返回结构是同一个类型。

热心网友 时间:2023-09-20 06:58

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct people
{
char name[20];
int age;
};
people get_one_people()
{
people tom;
strcpy(tom.name,"tom");
tom.age = 24;
return tom;
}
void main()
{
people someone = get_one_people();
printf("姓名:%s\t年龄:%d\n",someone.name,someone.age);
system("pause");
}



不适用 结构体内 有指针类型的结构体.

如果一定要有指针, 最好用c++的引用传递 或者 2级指针

热心网友 时间:2023-09-20 06:59

typedef struct
{
int a;
int b;
} A;

A getStruct()
{
A temp;
temp.a = 10;
temp.b = 20;
return temp;
}
int main()
{
A a = getStruct();
printf("A.a = %d, A.b = %d\n", a.a, a.b);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
笔记本电脑怎么连接路由器笔记本电脑怎么连接自家wifi dnf辅助职业专 dnf辅助职业专属属性是什么意思? dnf辅助职业专属属性什么意思? 王者荣耀巨灵神有什么背景故事吗 王者荣耀巨灵神怎么样 新英雄巨灵神技能是什么 初中教资科目一总分多少分 童桂恒教研成果 伤心难过的句子说说心情短语(悲伤的微光) 伤心难过的说说,伤心难过的句子(心灵独白) 肠胃蠕动不好怎么办 c语言函数能不能返回结构体 肠胃不好的人喝什么饮料好? 肠胃不好吃什么或喝什么有益? 胃肠蠕动慢喝什么牛奶好 肠胃蠕动慢喝酸奶有用吗? 肠道蠕动慢怎么调理 胃肠道动力不足便秘怎么办 肠胃蠕动慢喝酸奶有用吗 肠胃不好可以喝什么饮料 肠胃不蠕动怎么办救命 胃消化不好,肠胃蠕动不好的人该吃什么食物好? 消化不好,肠胃蠕动缓慢怎么办? 肠胃不蠕动反流喝什么粥 肠胃不好喝什么茶 肠胃不好喝什么好? 求真正好看的电影。别瞎复制。 恶魔的崛起第三部叫什么 凉拌猪皮怎么做好吃简单窍门 《上帝保佑美国》、《狂暴2:资本的惩罚》、《恶魔... 凉拌炸猪皮怎么做好吃 肠胃蠕动差怎么办?大神们帮帮忙 C语言函数中如何返回一个结构体类型 肠胃蠕动慢喝粥可以吗 C语言如何返回结构体数组 肠胃不蠕动 便秘是什么原因造成的呢 C语言中函数的返回值可以一个结构类型吗? C语言返回结构体函数返回值应定义哪种类型? 肠胃蠕动不好怎么样可以调理 c语言中调用函数如何返回多个值? c语言中函数返回值可以是数组、字符串和结构体吗? C语言返回结构指针的函数 c语言的函数返回值? c语言结构体函数返回问题 C语言函数返回类型 请教:C语言函数的返回值类型能否为结构体 求解一个c语言函数返回结构体指针的问题 c 函数中可以返回结构体引用么? c语言中返回结构体数组 C语言返回结构的指针问题? C语言结构体函数的返回值是结构体结构体变量中的信息