成都网站建设设计

将想法与焦点和您一起共享

c语言中结构体与函数 c语言中结构体的用法

关于C语言的结构体函数

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

创新互联公司从2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元望都做网站,已为上家服务,为望都各地企业和个人服务,联系电话:18982081108

如:typedef

struct

Teacher

TEACHER;

则可以用TEACHER

代替struct

Teacher

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

追问:

那struct

Teacher

*creat(struct

Teacher

*head);

和Teacher

*creat(struct

Teacher

*head);

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

追答:

是一样的,struct

Teacher

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

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

C语言中结构体和函数有着本质上的不同。

结构体是用户自己定义的一中数据类型,比如说你想要把学生信息作为一个整体存放在一个数据类型中,可以定义结构体,其中某个成员存放学号,某个存放姓名等等。

但是函数就完全不同了,函数是为了实现某种功能,比如你要在一堆学生中寻找某一个学生可以用函数来实现。

c语言结构体与函数结合使用

我在VC6里面运行了一下主要有一下的错误

1,首先,汉字“男”这个是一个字符串,所以必须占三个字节也就是 char sex[3];才可以记住,字符串以‘\0’结尾哦!你没有算\0

2,就是你丢了好几个(逗号),自己找下

4,,再次你的struct test后的k[5]只能说是声明了一个变量,但是变量的初始化必须在main 内进行,但是又牵扯到了字符赋值的问题!这个可能你没太深入去学!额错误有点多,我给你改了下,你自己在仔细找找哪里有错误吧!

#includestdio.h

struct test

{

int kaohao;

char name[10];

char sex[3];

int age;

float chengji;

};

void best(test k[5])

{

int i=0;

float max=0;

struct test maxs;

for(;i5;i++)

if(k[i].chengjimax)

{

max=k[i].chengji;

maxs=k[i];

}

printf("最高成绩的人是:%s\n成绩为%f\n",maxs.name,maxs.chengji);

}

int main()

{

struct test k[5]={ //要是.c文件的话就必须注明声明变量!你之前的声明也可以声明

//k[5]变量但是不能在拿来初始化!总的来说你写的还挺不错的!

//继续加油啊!

{1101,"张三","男",19,68.5},

{1102,"李四","男",20,75},

{1103,"王五","女",18,80.5},

{1104,"孙六","女",18,90},

{1105,"周七","男",19,59}};

best(k);

return 0;

}

C语言——结构体/函数

#include stdio.h

#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语言中结构体与函数 c语言中结构体的用法
标题网址:http://chengdu.cdxwcx.cn/article/docpjpg.html