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