1、結(jié)構(gòu)體數(shù)組傳給指針,實(shí)質(zhì)上是不可能的,本質(zhì)上傳的是數(shù)組首地址,根據(jù)偏移來(lái)操作數(shù)組,這樣看起來(lái)好像是真在操作數(shù)組一樣。就和普通指針一樣使用,只不過(guò)它是結(jié)構(gòu)體數(shù)組。
十余年的鎮(zhèn)江網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鎮(zhèn)江建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“鎮(zhèn)江網(wǎng)站設(shè)計(jì)”,“鎮(zhèn)江網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
2、例程:
typedef?struct?Student
{
char?name[10]?;
int?age?;
}Student;
#define?LEN?10?
//print?all?Student?infomation
void?fun(Student?*pStu,int?len)
{
int?i?;?
for(i?=?0?;i??len?;++i)
{
printf("%s\t%d",pStu[i].name,pStu[i].age)?;
}
}
int?main?()
{
Student?stu[LEN]?;
fun(stu,LEN)?;
}
C
語(yǔ)言中,結(jié)構(gòu)體(struct)是一種數(shù)據(jù)結(jié)構(gòu),是C語(yǔ)言中聚合數(shù)據(jù)類型(aggregate data type)的一類。結(jié)構(gòu)體可以被聲明為變量、指針或數(shù)組等,用以實(shí)現(xiàn)較復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
結(jié)構(gòu)體同時(shí)也是一些元素的集合,這些元素稱為結(jié)構(gòu)體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問(wèn)。
定義與聲明
結(jié)構(gòu)體的定義如下所示,struct為結(jié)構(gòu)體關(guān)鍵字,tag為結(jié)構(gòu)體的標(biāo)志,member-list為結(jié)構(gòu)體成員列表,其必須列出其所有成員;variable-list為此結(jié)構(gòu)體聲明的變量。
在實(shí)際應(yīng)用中,C語(yǔ)言結(jié)構(gòu)體數(shù)組常被用來(lái)表示一個(gè)擁有相同數(shù)據(jù)結(jié)構(gòu)的群體,比如一個(gè)班的學(xué)生、一個(gè)車間的職工等。
在C語(yǔ)言中,定義結(jié)構(gòu)體數(shù)組和定義結(jié)構(gòu)體變量的方式類似;
例:
struct stu{
char*name;//姓名
int num;//學(xué)號(hào)
int age;//年齡
char group;//所在小組
float score;//成績(jī)
}class[5];
表示一個(gè)班級(jí)有5個(gè)學(xué)生。
擴(kuò)展資料:
結(jié)構(gòu)體數(shù)組的引用與引用一個(gè)結(jié)構(gòu)體變量在原理上是一樣的。只不過(guò)結(jié)構(gòu)體數(shù)組中有多個(gè)結(jié)構(gòu)體變量,我們只需利用for循環(huán)一個(gè)一個(gè)地使用結(jié)構(gòu)體數(shù)組中的元素。
下面編寫一個(gè)程序,編程要求:從鍵盤輸入5個(gè)學(xué)生的基本信息,如姓名、年齡、性別、學(xué)號(hào),然后將學(xué)號(hào)最大的學(xué)生的基本信息輸出到屏幕。
#includelt;stdio.hgt;
#includelt;string.hgt;
struct STU
{
char name[20];
int age;
char sex;
char num[20];
};
void OutputSTU(struct STU stu[5]);
//函數(shù)聲明,該函數(shù)的功能是輸出學(xué)號(hào)最大的學(xué)生信息
int main(void)
{
int i;
struct STU stu[5];
for(i=0;ilt;5;++i)
{
printf("請(qǐng)輸入第%d個(gè)學(xué)生的信息:",i+1);
scanf("%s%d%c%s",
stult;igt;.name,
stult;igt;
.age,stult;igt;
.sex,stult;
igt;.num);/*%c
前面要加空格,不然輸入時(shí)會(huì)將空格賦給%c*/
}
OutputSTU(stu);
return 0;
}
void OutputSTU(struct STU stu[5])
{
struct STU stumax=stu[0];
int j;
for(j=1;jlt;5;++j)
{
if(strcmp(stumax.num,stu[j]
.num)lt;0)//strcmp函數(shù)的使用
{
stumax=stu[j];
}
}
printf("學(xué)生姓名:%s學(xué)生年齡:%d學(xué)生性別:%c學(xué)生學(xué)號(hào):
%s\n",stumax.name,
stumax.age,stumax.
sex,stumax.num);
}
輸出結(jié)果是:
請(qǐng)輸入第1個(gè)學(xué)生的信息:小紅22 F Z1207031
請(qǐng)輸入第2個(gè)學(xué)生的信息:小明21 M Z1207035
請(qǐng)輸入第3個(gè)學(xué)生的信息:小七23 F Z1207022
請(qǐng)輸入第4個(gè)學(xué)生的信息:小欣20 F Z1207015
請(qǐng)輸入第5個(gè)學(xué)生的信息:小天19 M Z1207024
學(xué)生姓名:小明學(xué)生年齡:21學(xué)生性別:M學(xué)生學(xué)號(hào):Z1207035
參考資料:
百度百科——結(jié)構(gòu)體
1、C語(yǔ)言結(jié)構(gòu)體數(shù)組的定義:數(shù)組是有序的并且具有相同類型的數(shù)據(jù)的集合。
2、結(jié)構(gòu)數(shù)組就是具有相同結(jié)構(gòu)類型的變量集合。假如要用C語(yǔ)言,定義一個(gè)班級(jí)40個(gè)同學(xué)的姓名、性別、年齡和住址, 可以做成一個(gè)結(jié)構(gòu)數(shù)組。
結(jié)構(gòu)數(shù)組成員的訪問(wèn)是以數(shù)組元素為結(jié)構(gòu)變量的,它的形式為:
1、結(jié)構(gòu)數(shù)組元素—成員名。
2、例如:student[0].name,student[30].age
3、實(shí)際上結(jié)構(gòu)數(shù)組相當(dāng)于一個(gè)二維構(gòu)造, 第一維是結(jié)構(gòu)數(shù)組元素, 每個(gè)元素是一個(gè)結(jié)構(gòu)變量, 第二維是結(jié)構(gòu)成員。
注意:結(jié)構(gòu)數(shù)組的成員也可以是數(shù)組變量。
int aver(struct Student stu[]);
這一句函數(shù)申明要放到結(jié)構(gòu)體申明下面去,否則無(wú)法獲取參數(shù)student類型的數(shù)據(jù)大小信息
scanf_s("%s %d %d %d", s[p].name,10,s[p].score[0],1, s[p].score[1],1, s[p].score[2]),1;
前面的name不用加 因?yàn)槭菙?shù)組名 但是后面的score都需要加的啊、
所謂結(jié)構(gòu)體數(shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)結(jié)構(gòu)體。在實(shí)際應(yīng)用中,C語(yǔ)言結(jié)構(gòu)體數(shù)組常被用來(lái)表示一個(gè)擁有相同數(shù)據(jù)結(jié)構(gòu)的群體,比如一個(gè)班的學(xué)生、一個(gè)車間的職工等。
結(jié)構(gòu)體可以存儲(chǔ)不同的數(shù)據(jù)類型,將他們互相聯(lián)系起來(lái)。結(jié)構(gòu)體數(shù)組可以連續(xù)存儲(chǔ)多個(gè)結(jié)構(gòu)體,和數(shù)組作用相似。比如想定義同一個(gè)最小外接矩形的四個(gè)坐標(biāo)值,并給予這個(gè)矩形一個(gè)特征編號(hào)。當(dāng)需要存儲(chǔ)多個(gè)最小外接矩形的信息時(shí),就需要?jiǎng)討B(tài)申請(qǐng)一個(gè)結(jié)構(gòu)體數(shù)組。
struct 結(jié)構(gòu)體類型名{類型名 成員名;類型名 成員名;……},先聲明結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體變量名。聲明結(jié)構(gòu)體類型,不分配空間,定義結(jié)構(gòu)體類型變量,就要分配內(nèi)存空間。
擴(kuò)展資料:
結(jié)構(gòu)體數(shù)組指針類型:
一個(gè)結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的起始地址??梢栽O(shè)一個(gè)指針變量,用來(lái)指向一個(gè)結(jié)構(gòu)體變量,此時(shí)該指針變量的值是結(jié)構(gòu)體變量的起始地址,指針變量也可以用來(lái)指向結(jié)構(gòu)體數(shù)組中的元素。
1、類型一:
指向結(jié)構(gòu)體變量的指針引用結(jié)構(gòu)體變量中的成員。
2、類型二:
用結(jié)構(gòu)體變量和指向結(jié)構(gòu)體變量的指針構(gòu)成鏈表,鏈表是一種常見的重要的數(shù)據(jù)結(jié)構(gòu)。鏈表有一個(gè)“頭指針”變量,以head表示,它存放一個(gè)地址。該地址指向一個(gè)元素。
鏈表中的每一個(gè)元素稱為“結(jié)點(diǎn)”,每個(gè)結(jié)點(diǎn)都應(yīng)包括兩個(gè)部分:
一是用戶需要用的實(shí)際數(shù)據(jù),
二是下一個(gè)結(jié)點(diǎn)的地址。
鏈表中各元素在內(nèi)存中的存儲(chǔ)單元可以是不連續(xù)的。要找某一元素,可以先找到上一個(gè)元素,根據(jù)它提供的下一元素地址找到下一個(gè)元素。這種鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用結(jié)構(gòu)體變量和指針才能實(shí)現(xiàn)。
可以聲明一個(gè)結(jié)構(gòu)體類型,包含兩種成員,一種是用戶需要用的實(shí)際數(shù)據(jù),另一種是用來(lái)存放下一結(jié)點(diǎn)地址的指針變量。
參考資料來(lái)源:百度百科—結(jié)構(gòu)體類型—數(shù)組
新聞名稱:c語(yǔ)言函數(shù)結(jié)構(gòu)體數(shù)組 c語(yǔ)言結(jié)構(gòu)體數(shù)組定義
文章網(wǎng)址:http://aaarwkj.com/article28/docpsjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、服務(wù)器托管、關(guān)鍵詞優(yōu)化、微信公眾號(hào)、網(wǎng)站策劃、外貿(mào)網(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)
猜你還喜歡下面的內(nèi)容