C語(yǔ)言結(jié)構(gòu)體的具體使用方法
初識(shí)C語(yǔ)言結(jié)構(gòu)體
1.為什么要有結(jié)構(gòu)體
(1)之前int、char等類型描述的結(jié)構(gòu)體非常單一,只可描述一種類型。
(2)數(shù)組也是描述同一類型的集合,只可描述一種類型。
(3)而結(jié)構(gòu)體使得C語(yǔ)言可以描述復(fù)雜類型,比如學(xué)生類型( 包含學(xué)生的名字、年齡、性別、電話號(hào)等信息)。
結(jié)構(gòu)體和數(shù)組的區(qū)別:
- ·結(jié)構(gòu)體:用來(lái)描述相同/不同數(shù)據(jù)元素類型的集合。
- ·數(shù)組:用來(lái)描述具有相同數(shù)據(jù)元素類型的集合。
2.結(jié)構(gòu)體的定義
2.1結(jié)構(gòu)體類型的定義
格式:
struct Stu//結(jié)構(gòu)體類型名字為struct Stu(struct Stu類似于int) { //結(jié)構(gòu)體內(nèi)容 char Name[20]; int Age; char Sex[5]; char Tel[12]; };//記著加;
注意:
(1)結(jié)構(gòu)體類型的定義是在main函數(shù)外部。
(2)此處指定義了一個(gè)結(jié)構(gòu)體類型,還未定義對(duì)應(yīng)結(jié)構(gòu)類型的變量,所以還未在內(nèi)存中開(kāi)辟空間。
2.2定義結(jié)構(gòu)體普通變量及訪問(wèn)
struct Stu Tom = { “Tom”, 13, “男”, “11122546698” };
//定義結(jié)構(gòu)體普通變量并初始化,變量名為T(mén)om,用變量名訪問(wèn)結(jié)構(gòu)體。
#include <stdio.h> struct Stu { char Name[20];//名字 int Age; //年齡 char Sex[5];//性別 char Tel[12];//電話號(hào) }; int main() { struct Stu Tom = { "Tom", 13, "男", "11122546698" }; printf("%s,%d,%s,%s\n", Tom.Name, Tom.Age, Tom.Sex, Tom.Tel);//用變量名和結(jié)構(gòu)成員運(yùn)算符(.)訪問(wèn)結(jié)構(gòu)體。 return 0; }
2.3定義結(jié)構(gòu)體指針變量及訪問(wèn)
struct Stu *s = &Tom;
//定義結(jié)構(gòu)體指針變量,s指向Tom,有如下兩種訪問(wèn)方式。
#include <stdio.h> struct Stu { char Name[20];//名字 int Age; //年齡 char Sex[5];//性別 char Tel[12];//電話號(hào) }; int main() { struct Stu Tom = { "Tom", 13, "男", "11122546698" }; struct Stu *s = &Tom; //用結(jié)構(gòu)體指針運(yùn)算符->訪問(wèn)(常用訪問(wèn)方式) printf("%s,%d,%s,%s\n", s->Name, s->Age, s->Sex, s->Tel); //s為指針變量,*s對(duì)指針解引用,代表指針?biāo)赶虻膬?nèi)容。 //而且用指針和結(jié)構(gòu)成員運(yùn)算符(.)訪問(wèn)結(jié)構(gòu)體時(shí),由于結(jié)構(gòu)成員運(yùn)算符(.)比指針引用運(yùn)算符(*)的優(yōu)先級(jí)高,必須代括號(hào)。 printf("%s,%d,%s,%s\n", (*s).Name, (*s).Age, (*s).Sex, (*s).Tel); return 0; }
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)自行車(chē)存放管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)自行車(chē)存放管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08C語(yǔ)言中計(jì)算函數(shù)執(zhí)行時(shí)間的三種方式
本文主要介紹了C語(yǔ)言中計(jì)算函數(shù)執(zhí)行時(shí)間的三種方式,主要包括clock(),timeb和time,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09C語(yǔ)言 詳細(xì)講解數(shù)組參數(shù)與指針參數(shù)
這篇文章主要介紹了C語(yǔ)言中數(shù)組參數(shù)與指針參數(shù)的分析,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04C/C++表格組件Qt?TableWidget應(yīng)用詳解
本文詳細(xì)講解了C/C++中使用列表框組件Qt?TableWidget的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12