文章目錄提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
創(chuàng)新互聯(lián)公司專注于懷遠(yuǎn)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。懷遠(yuǎn)網(wǎng)站建設(shè)公司,為懷遠(yuǎn)等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
在編程中,有時(shí)會(huì)出現(xiàn)大量相同類型的數(shù)據(jù),比如說一個(gè)班同學(xué)的姓名,年齡還有身高等等,那么一個(gè)班那么多同學(xué),就要有大量重復(fù)類型的數(shù)據(jù)代碼,會(huì)使得代碼看起來冗長重復(fù),那么,定義一個(gè)結(jié)構(gòu)體,把每個(gè)同學(xué)的信息放在每個(gè)結(jié)構(gòu)體里面,就會(huì)大大減少代碼量。
把一些基本類型數(shù)據(jù)組合在一起形成的一個(gè)新的復(fù)合數(shù)據(jù)類型,這個(gè)叫結(jié)構(gòu)體。
二、使用步驟 1.如果沒有結(jié)構(gòu)體代碼如下:
int main()
{
?? ?int age1 = 12, age2 = 14, age3 = 11, age4 = 16.......age100 = 10;//每個(gè)同學(xué)的年齡
?? ?char a1[5] = "張三", a2[5] = "李四", a3[5] = "王五", a4[5] = "趙六"......//每個(gè)同學(xué)的姓名
?? ?char b1 = 'F', b2 = 'F', b3 = 'M', b4 = 'M', b5 = 'F'......//每個(gè)同學(xué)的性別
?? ?return 0;
}
這樣定義起來很麻煩,耗費(fèi)了程序員大量時(shí)間,并且代碼看起來很冗長繁瑣。
# include# include# includestruct Student//定義了一個(gè)數(shù)據(jù)類型,這個(gè)數(shù)據(jù)類型叫結(jié)構(gòu)體,注意,結(jié)構(gòu)體不是變量
{
?? ?int age;//每個(gè)同學(xué)的年齡
?? ?char name[5];//每個(gè)同學(xué)的姓名
?? ?char sex;//每個(gè)同學(xué)的性別
};//分號(hào)一定不能丟
int main()
{
?? ?struct Student st1 = { 14, "張三", 'M' },//st1是數(shù)據(jù)類型為結(jié)構(gòu)體的變量
? struct Student st2 = { 15, "李四", 'M' },//st2是數(shù)據(jù)類型為結(jié)構(gòu)體的變量
? struct Student st3 = { 13, "王五", 'F' };//st3是數(shù)據(jù)類型為結(jié)構(gòu)體的變量
?? ?//修改結(jié)構(gòu)體變量中的除字符串以外的變量
?? ?//st1.age = 16;
?? ?//st1.sex = 'F';
?? ?//修改結(jié)構(gòu)體變量中的字符串?dāng)?shù)組name
?? ?//struct Student * p = &st1;//首先定義一個(gè)指針存儲(chǔ)st1變量的首地址,
//由于st1是結(jié)構(gòu)體類型數(shù)據(jù),所以指針也要定義成結(jié)構(gòu)體類型指針
?? ?//strcpy((*p).name, "小明");//首先要加頭文件來調(diào)用strcpy函數(shù)
//strcpy( A , B )表示把B字符串拷貝到A中,其中B字符串必須是const類型
?? ?//輸出結(jié)構(gòu)體
?? ?printf("%d %s %c\n %d %s %c\n %d %s %c", st1.age, st1.name, st1.sex, st2.age, st2.name, st2.sex, st3.age, st3.name, st3.sex);
?? ?return 0;
}
輸出結(jié)果如下:14 張三 M
15 李四 M
13 王五 F
D:\VS項(xiàng)目\把結(jié)構(gòu)體拆開的冗長代碼\x64\Debug\把結(jié)構(gòu)體拆開的冗長代碼.exe (進(jìn)程 4952)已退出,代碼為 0。
要在調(diào)試停止時(shí)自動(dòng)關(guān)閉控制臺(tái),請(qǐng)啟用“工具”->“選項(xiàng)”->“調(diào)試”->“調(diào)試停止時(shí)自動(dòng)關(guān)閉控制臺(tái)”。
按任意鍵關(guān)閉此窗口. . .
把注釋去掉以后,也就是修改了結(jié)構(gòu)體變量之后
輸出結(jié)果如下:16 小明 F
15 李四 M
13 王五 F
D:\VS項(xiàng)目\把結(jié)構(gòu)體拆開的冗長代碼\x64\Debug\把結(jié)構(gòu)體拆開的冗長代碼.exe (進(jìn)程 8176)已退出,代碼為 0。
要在調(diào)試停止時(shí)自動(dòng)關(guān)閉控制臺(tái),請(qǐng)啟用“工具”->“選項(xiàng)”->“調(diào)試”->“調(diào)試停止時(shí)自動(dòng)關(guān)閉控制臺(tái)”。
按任意鍵關(guān)閉此窗口. . .
1.有了結(jié)構(gòu)體以后,就會(huì)大大簡化代碼量,同時(shí)也使得代碼看起來更整潔,可讀性更高
2.結(jié)構(gòu)體在學(xué)生管理系統(tǒng)等方面很常見,馬上等我學(xué)了如何敲學(xué)生管理系統(tǒng)代碼后,會(huì)在下一個(gè)帖子發(fā)出來。
3.修改結(jié)構(gòu)體中字符數(shù)組類型的變量(比如名字),常常會(huì)用指針變量和strcpy字符串函數(shù),在修改的時(shí)候,可以有兩種類型,一種是代碼中的strcpy((*p).name, "小明");,還有一種是
strcpy(p->name, "小明");,這兩種都可以,都是可以修改名字的。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
新聞標(biāo)題:關(guān)于完善C語言知識(shí)儲(chǔ)備的學(xué)習(xí)--結(jié)構(gòu)體1-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://vcdvsql.cn/article38/jegsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、外貿(mào)建站、自適應(yīng)網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站營銷、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容