c语言笔记函数结构体,c语言结构体详解

C语言——结构体/函数

#include stdio.h

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都垃圾桶等,在成都网站建设成都全网营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。

#include string.h

#define N (5)

struct STUDENT

{

char name[20];

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);

print(a,N);

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

print(a,N);

return 0;

}

void scan(struct STUDENT *a,int n)

{

int i;

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)

{

int i;

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

{

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;

}

在c语言中 函数和结构体的区别

一个程序通常围绕这两个方面进行:数据存储和数据操作;

结构体是一种数据类型,用来将不同类型的数据组合在一起,决定数据的存储问题(比如在内存占多大的空间来,系统怎么解释存储数据的位数据啦等等)同int, double 等编译器内置的数据类型基本相同,只不过结构体是用户自己定义的数据类型而已,例如:

struct student

char name[20];

int NO;

};

函数是对数据的一种操作;

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

#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)。


本文题目:c语言笔记函数结构体,c语言结构体详解
URL地址:http://ybzwz.com/article/dscihij.html