如果在結(jié)構(gòu)體定義時(shí),或定義后取了別名,可以用別名,否則不能省“struct”
創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元望都做網(wǎng)站,已為上家服務(wù),為望都各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
如:typedef
struct
Teacher
TEACHER;
則可以用TEACHER
代替struct
Teacher
C語(yǔ)言的結(jié)構(gòu)體沒有存取控制權(quán)限,相當(dāng)于C++存取控制權(quán)限中的public:
追問:
那struct
Teacher
*creat(struct
Teacher
*head);
和Teacher
*creat(struct
Teacher
*head);
一樣嗎?如果不一樣的話有什么區(qū)別呢?
追答:
是一樣的,struct
Teacher
和Teacher只是同一東西的兩種不同寫法。
C語(yǔ)言中結(jié)構(gòu)體和函數(shù)有著本質(zhì)上的不同。
結(jié)構(gòu)體是用戶自己定義的一中數(shù)據(jù)類型,比如說(shuō)你想要把學(xué)生信息作為一個(gè)整體存放在一個(gè)數(shù)據(jù)類型中,可以定義結(jié)構(gòu)體,其中某個(gè)成員存放學(xué)號(hào),某個(gè)存放姓名等等。
但是函數(shù)就完全不同了,函數(shù)是為了實(shí)現(xiàn)某種功能,比如你要在一堆學(xué)生中尋找某一個(gè)學(xué)生可以用函數(shù)來(lái)實(shí)現(xiàn)。
我在VC6里面運(yùn)行了一下主要有一下的錯(cuò)誤
1,首先,漢字“男”這個(gè)是一個(gè)字符串,所以必須占三個(gè)字節(jié)也就是 char sex[3];才可以記住,字符串以‘\0’結(jié)尾哦!你沒有算\0
2,就是你丟了好幾個(gè)(逗號(hào)),自己找下
4,,再次你的struct test后的k[5]只能說(shuō)是聲明了一個(gè)變量,但是變量的初始化必須在main 內(nèi)進(jìn)行,但是又牽扯到了字符賦值的問題!這個(gè)可能你沒太深入去學(xué)!額錯(cuò)誤有點(diǎn)多,我給你改了下,你自己在仔細(xì)找找哪里有錯(cuò)誤吧!
#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("最高成績(jī)的人是:%s\n成績(jī)?yōu)?f\n",maxs.name,maxs.chengji);
}
int main()
{
struct test k[5]={ //要是.c文件的話就必須注明聲明變量!你之前的聲明也可以聲明
//k[5]變量但是不能在拿來(lái)初始化!總的來(lái)說(shuō)你寫的還挺不錯(cuò)的!
//繼續(xù)加油??!
{1101,"張三","男",19,68.5},
{1102,"李四","男",20,75},
{1103,"王五","女",18,80.5},
{1104,"孫六","女",18,90},
{1105,"周七","男",19,59}};
best(k);
return 0;
}
#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語(yǔ)言中結(jié)構(gòu)體與函數(shù) c語(yǔ)言中結(jié)構(gòu)體的用法
文章分享:http://aaarwkj.com/article36/docpjpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)