当前位置:首页 » 编程语言 » c语言结构体中函数

c语言结构体中函数

发布时间: 2023-08-14 22:43:23

❶ 在C语言中struct结构体里面 不能定义函数么

c中不能,c++里可以在结构体内定义函数,用法和class定义类是一样旦闭的,说穿掘贺了struct 和 class用法相同,但要注意的一点是,struct默认的是public类型,而class默认的是private类型判迟派的

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

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

❸ C语言——结构体/函数

#include<stdio.h>
#include<string.h>

#defineN(5)

structSTUDENT
{
charname[20];
intage;
floatchinese,math;
};

voidscan(structSTUDENT*a,intn);
voidprint(structSTUDENT*a,intn);

voidsort(void*a,intn,intsize,int(*cmp)(void*,void*));
intcmp_score(void*a,void*b);
intcmp_chinese(void*a,void*b);
intcmp_name(void*a,void*b);

intmain()
{
structSTUDENTa[N];
inti;
scan(a,N);
sort(a,N,sizeof(*a),cmp_score);
print(a,N);
sort(a,N,sizeof(*a),cmp_chinese);
print(a,N);
sort(a,N,sizeof(*a),cmp_name);
print(a,N);
return0;
}

voidscan(structSTUDENT*a,intn)
{
inti;
for(i=0;i<n;++i)
{
scanf(" %s%d%f%f",a[i].name,&a[i].age,&a[i].chinese,&a[i].math);
}
}

voidprint(structSTUDENT*a,intn)
{
inti;
for(i=0;i<n;++i)
{
printf("%s%d%f%f ",a[i].name,a[i].age,a[i].chinese,a[i].math);
}
}

voidsort(void*a,intn,intsize,int(*cmp)(void*,void*))
{
inti,j;
void*t=malloc(size);
for(i=0;i<n-1;++i)
{
for(j=0;j<n-i-1;++j)
{
if(cmp(a+size*j,a+size*(j+1)))
{
memcpy(t,a+size*j,size);
memcpy(a+size*j,a+size*(j+1),size);
memcpy(a+size*(j+1),t,size);
}
}
}
free(t);
}

intcmp_score(void*a,void*b)
{
return((structSTUDENT*)a)->chinese+((structSTUDENT*)a)->math<((structSTUDENT*)b)->chinese+((structSTUDENT*)b)->math;
}

intcmp_chinese(void*a,void*b)
{
return((structSTUDENT*)a)->chinese<((structSTUDENT*)b)->chinese;
}

intcmp_name(void*a,void*b)
{
returnstrcmp(((structSTUDENT*)a)->name,((structSTUDENT*)b)->name)>0;
}

热点内容
王的编程 发布:2025-08-24 11:28:51 浏览:677
mysql远程同步数据库 发布:2025-08-24 11:16:33 浏览:702
少儿编程机器人培训机构排名 发布:2025-08-24 11:14:58 浏览:260
金蝶标准版服务器看不到ip地址 发布:2025-08-24 10:57:23 浏览:409
FTP循环全称 发布:2025-08-24 10:40:22 浏览:126
安卓手机如何恢复误删的视频 发布:2025-08-24 10:40:20 浏览:198
摩斯密码22什么意思 发布:2025-08-24 10:19:55 浏览:35
java输出图片 发布:2025-08-24 10:12:13 浏览:915
python文件夹内容 发布:2025-08-24 10:11:38 浏览:400
腾讯云服务器ip更换 发布:2025-08-24 10:03:23 浏览:771