C語言入門篇--初識結(jié)構(gòu)體
1.為什么要有結(jié)構(gòu)體
(1)之前int、char等類型描述的結(jié)構(gòu)體非常單一,只可描述一種類型。
(2)數(shù)組也是描述同一類型的集合,只可描述一種類型。
(3)而結(jié)構(gòu)體使得C語言可以描述復雜類型,比如學生類型( 包含學生的名字、年齡、性別、電話號等信息)。
結(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)體類型,還未定義對應結(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; }
以上就是C語言入門篇--理解結(jié)構(gòu)體的詳細內(nèi)容,更多關于C語言結(jié)構(gòu)體的資料請關注腳本之家其它相關文章!
相關文章
C語言中break與continue的用法和區(qū)別詳解
當我們使用while或for循環(huán)時,如果想提前結(jié)束循環(huán)(在不滿足結(jié)束條件的情況下結(jié)束循環(huán)),可以使用break或continue關鍵字,這篇文章主要給大家介紹了關于C語言中break與continue的用法和區(qū)別的相關資料,需要的朋友可以參考下2021-10-10深入探討C語言中局部變量與全局變量在內(nèi)存中的存放位置
本篇文章是對在C語言中局部變量與全局變量在內(nèi)存中的存放位置進行了詳細的分析介紹,需要的朋友參考下2013-05-05