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