网站首页 > 文章中心 > 其它

c语言进行结构体函数

作者:小编 更新时间:2023-09-29 18:48:34 浏览量:133人看过

C语言结构体类型函数

C语言结构体函数

STU?f?(STU?a)

int?i;

strcpy(?a.name,?b.name?);

a.sex?=?b.sex;

好了,全部的将b中的数据赋值给a,相当于a=b;这样的一个操作

return?a;?

}

main()

d?=?f(c);//这里传的c是个复制品(传递的不是结构体指针),所以c不会变,d接收f()函数的返回值,因为返回值的内容是f()中的b的值,所以,d与c不同

printf?("%s,%c,%d,%d,?",?d.name,?d.sex,?d.score[0],?d.score[1]);

printf?("%s,%c,%d,%d\n",?c.name,?c.sex,?c.score[0],?c.score[1]);

关于C语言的结构体函数

如果在结构体定义时,或定义后取了别名,可以用别名,否则不能省"struct"

如:typedef

struct

Teacher

TEACHER;

则可以用TEACHER

代替struct

C语言的结构体没有存取控制权限,相当于C++存取控制权限中的public:

追问:

那struct

*creat(struct

*head);

和Teacher

一样吗?如果不一样的话有什么区别呢?

追答:

是一样的,struct

和Teacher只是同一东西的两种不同写法.

C语言——结构体/函数

#include?stdio.h

#include?string.h

struct?STUDENT

{

int?age;

float?chinese,math;

};

void?scan(struct?STUDENT?*a,int?n);

void?print(struct?STUDENT?*a,int?n);

void?sort(void?*a,int?n,int?size,int?(*cmp)(void?*,void?*));

int?cmp_score(void?*a,void?*b);

int?cmp_chinese(void?*a,void?*b);

int?cmp_name(void?*a,void?*b);

int?main()

struct?STUDENT?a[N];

int?i;

scan(a,N);

sort(a,N,sizeof(*a),cmp_score);

print(a,N);

sort(a,N,sizeof(*a),cmp_chinese);

sort(a,N,sizeof(*a),cmp_name);

return?0;

void?scan(struct?STUDENT?*a,int?n)

for(i=0;in;++i)

scanf("\n%s?%d?%f?%f",a[i].name,a[i].age,a[i].chinese,a[i].math);

void?print(struct?STUDENT?*a,int?n)

printf("%s?%d?%f?%f\n",a[i].name,a[i].age,a[i].chinese,a[i].math);

void?sort(void?*a,int?n,int?size,int?(*cmp)(void?*,void?*))

int?i,j;

void?*t=malloc(size);

for(i=0;in-1;++i)

for(j=0;jn-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);

int?cmp_score(void?*a,void?*b)

return?((struct?STUDENT?*)a)-chinese+((struct?STUDENT?*)a)-math((struct?STUDENT?*)b)-chinese+((struct?STUDENT?*)b)-math;

int?cmp_chinese(void?*a,void?*b)

return?((struct?STUDENT?*)a)-chinese((struct?STUDENT?*)b)-chinese;

int?cmp_name(void?*a,void?*b)

return?strcmp(((struct?STUDENT?*)a)-name,((struct?STUDENT?*)b)-name)0;

以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章