目錄
按需設(shè)計(jì)可以根據(jù)自己的需求進(jìn)行定制,成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義導(dǎo)語:
思維導(dǎo)圖:
1、結(jié)構(gòu)體的聲明
1.1 結(jié)構(gòu)的基礎(chǔ)知識?
1.2 結(jié)構(gòu)的聲明
1.3 結(jié)構(gòu)成員的類型?
1.4?結(jié)構(gòu)體變量的定義和初始化
2、結(jié)構(gòu)成員訪問
3.結(jié)構(gòu)體傳參
結(jié)語:
導(dǎo)語:本篇文章講解結(jié)構(gòu)體的基礎(chǔ)知識,對結(jié)構(gòu)體有一個基本的認(rèn)識,能看懂并會使用結(jié)構(gòu)體。
思維導(dǎo)圖:1、結(jié)構(gòu)體的聲明 1.1 結(jié)構(gòu)的基礎(chǔ)知識?結(jié)構(gòu)是一些值的集合,這些值稱為成員變量。結(jié)構(gòu)的每個成員可以是不同類型的變量。
之前我們學(xué)過一種集合的概念——數(shù)組,數(shù)組就是一組相同元素的集合。而我們現(xiàn)在了解的是一些值的集合,結(jié)構(gòu)的成員可以是不同類型。
那為什么會有結(jié)構(gòu)這個東西呢?原因很簡單,我們生活中有很多復(fù)雜對象(如圖),用一個類型變量無法描述清楚,所以造出來結(jié)構(gòu)來描述我們這些復(fù)雜對象。
1.2 結(jié)構(gòu)的聲明結(jié)構(gòu)的語法聲明:
struct Stu
{
//結(jié)構(gòu)成員
char gender[10];
int age;
char name[20];
float grade;
};
1.3 結(jié)構(gòu)成員的類型?結(jié)構(gòu)的成員可以是標(biāo)量、數(shù)組、指針,甚至是其他結(jié)構(gòu)體。
這是一個類型,就和char、int、flaot一樣,只是這里面可以包含各種類型,可以理解為結(jié)構(gòu)體是“綜合型選手”。
1.4?結(jié)構(gòu)體變量的定義和初始化結(jié)構(gòu)體變量的定義:
struct Stu
{
//結(jié)構(gòu)成員
char gender[10];
int age;
char name[20];
float grade;
}s3,s4;//s3和s4也是結(jié)構(gòu)體變量 -- 全局變量
int main()
{
struct Stu s1,s2;//s1和s2是結(jié)構(gòu)體變量 --局部變量
return 0;
}
結(jié)構(gòu)體變量的初始化:
struct Stu
{
char gender[10];
int age;
char name[20];
float grade;
}s3,s4;
struct P
{
char address[50];
struct Stu s5;//結(jié)構(gòu)體嵌套
int class;
};
int main()
{
struct Stu s1 = { "男",22,"李華",98.2f };//初始化
struct P s2 = { "武漢",{"女",21,"珍妮",78.4f},108 };//嵌套訪問
return 0;
}
2、結(jié)構(gòu)成員訪問結(jié)構(gòu)變量的成員是通過點(diǎn)操作符(.)訪問的,點(diǎn)操作符接收兩個操作數(shù)。
代碼示例:
struct Stu
{
char gender[10];
int age;
char name[20];
float grade;
}s3,s4;
struct P
{
char address[50];
struct Stu s5;//結(jié)構(gòu)體嵌套
int class;
};
int main()
{
struct Stu s1 = { "男",22,"李華",98.2f };//初始化
struct P s2 = { "武漢",{"女",21,"珍妮",78.4f},108 };//嵌套訪問
printf("%s %d %s %.2f\n", s1.gender, s1.age, s1.name, s1.grade);
printf("%s %s %d %s %.2f %d\n", s2.address,s2.s5.gender,s2.s5.age,s2.s5.name,s2.s5.grade,s2.class);//嵌套訪問
return 0;
}
另外,也可也通過指針訪問變量的成員
struct Stu
{
char gender[10];
int age;
char name[20];
float grade;
}s3,s4;
void Print1(struct Stu s)
{
//結(jié)構(gòu)體變量.成員
printf("%s %d %s %.2f\n", s.gender, s.age, s.name, s.grade);
}
void Print2(struct Stu* s)
{
printf("%s %d %s %.2f\n", (* s).gender, (*s).age, (*s).name, (*s).grade);
//結(jié)構(gòu)體指針->成員
printf("%s %d %s %.2f\n", s->gender, s->age, s->name, s->grade);
}
int main()
{
struct Stu s1 = { "男",22,"李華",98.2f };//初始化
Print1(s1);//傳值調(diào)用
Print2(&s1);//傳址調(diào)用
return 0;
}
3.結(jié)構(gòu)體傳參剛才我們通過傳值調(diào)用和傳址調(diào)用兩種形式訪問結(jié)構(gòu)體成員,那么哪種方法更好呢?
在我看來,傳址調(diào)用肯定是好一點(diǎn)的。
結(jié)語:傳值調(diào)用參數(shù)會壓棧,重新開辟內(nèi)存,對數(shù)據(jù)進(jìn)行存儲,另外在傳遞的時候也會消耗時間,如果結(jié)構(gòu)體過大,那傳參的壓力比較大,會導(dǎo)致性能的下降;
傳址的話,把地址傳給函數(shù),一個地址的字節(jié)為4個字節(jié)或8個字節(jié),這時候傳參的壓力就會小一點(diǎn)。
本次講解的內(nèi)容較為基礎(chǔ),所需掌握的是了解什么是結(jié)構(gòu)體,如何訪問結(jié)構(gòu)體成員。要知道結(jié)構(gòu)體也是一個類型(自己創(chuàng)建的),里面包含了各個類型,可以用來描述較復(fù)雜的對象。
好了,本次分享就到這里,如果對大家有幫助的話,不妨點(diǎn)個贊支持一下,蟹蟹,再見!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧