一、學習目標
- 了解C語言的結構體的使用方法
- 了解C語言結構體的結構的賦值
- 了解多種C語言結構體變量的賦值方法和取值方法
目錄
C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學習C語言。
第一篇:(一)脫離學習誤區
第二篇:(二)C語言沒那么難簡單開發帶你了解流程
第三篇:(三)輕輕松松理解第一個C語言程序
第四篇:(四)語言的基本數據類型及變量
第五篇:(五)C語言的變量、常量及運算
第六篇:(六)輕輕松松了解C語言的邏輯運算
第七篇:(七)C語言的循環分分鐘上手
第八篇:(八)了解基本數組還不是那么簡單
第九篇:(九)C語言二維數組與循環嵌套
第十篇:(十)C語言的指針原來是這樣
第十一篇:(十一)C語言自定義函數真的很簡單
第十二篇:(十二)原來結構體是這么回事
第十三篇:(十三)socket服務端編寫
C語言新手的100個報錯解法
推薦
歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~
二、了解結構體的使用方法
C語言沒有一些其它高級語言中的面向對象概念,如果你是新手的話知道這個專業術語即可,在之后的不斷深入學習中早晚會遇見;為什么我把C語言的結構體與面向對象做一個比較?因為他們之間有一定的相似度,這是一個很重要的概念。
2.1 什么是C語言結構體
在學習C語言結構體前我們需要知道C語言結構體是什么東西,形式是如何的,它的核心的組成思想是什么。
結構體簡單的來說是一個數據的類型,跟int整型、char字符型類型一樣,都是一種數據類型,在此別糾結它具體是什么,畢竟還沒深入學,在此只要知道它也是數據類型即可。結構體是一種數據類型但它與int整型、char字符型數據不同之處是需要我們自己編寫它的一個數據結構(這個數據結構是單純意義上的數據組成)。結構體是有多個或其它數量的數據類型組成的一種結構,其它數量的數據類型可以是整形、字符型等。
由上所述我們可以知道,結構體是一個變量,但是這個變量需要我們自己去編寫它的數據構成,這些數據構成是一些數據類型的變量。
我們看一下結構體示例:
struct human{int age;char sex;char name;
} ;
結構體使用struct 進行聲明,struct 后接的一對花括號,花括號中編寫這個結構體所包含的變量有哪些,并且使用分號表示結構體內變量的結束;在struct之后花括號之前為結構體名,結構體名與變量名類似。
以上的結構體所包含的變量有整形變量age,字符變量sex以及字符變量name,名稱為human;結構體我們可以看為是一個類別,該類別的組成元素有哪些。
以上結構體名為human中文譯為人類,那么一個人有哪些屬性呢?首先有年齡是一個整數數據,所以我在結構體中編寫一個整數類型的變量age;人類還有性別,我在human結構體中使用sex表示說明并且也定義了一個char類型的變量name用于存儲人類的名稱代號。從以上所述可以很清楚的知道當前結構體human的一個組成。
注意:花括號末尾需要分號表示結束。
2.2 結構體的使用
在以上內容中重點強調了結構體是一個類型,那么一個類型的變量如何進行聲明創建?例如int類型定義一個變量a為 int a;
,那么結構體就可以寫成 結構體名 變量;
,這樣寫是錯的,必須在結構體名前添加一個 struct關鍵字,表示接下來我所聲明的變量為結構體: struct 結構體名 變量;
。代碼示例為:
#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming;
}
以上示例中定義了一個名為human的結構體,隨后根據這個結構體創建了一個xiaoming的結構體變量。
創建完結構體變量后我們需要對這個結構體變量進行賦值,賦值使用點運算符“.”,可以將這個點當作“的”使用。例如我需要為xiaoming增加一個年齡,那么就可以使用xiaoming后接一個點,表示小明的什么元素要賦值多少,可以寫成:
xiaoming.age=10;
同樣,其它的元素都可以這樣去進行賦值,我們稱這些元素為成員變量。其它成員變量的賦值:
xiaoming.sex='T';
xiaoming.name='M';
在此我賦值性別為男,用T表示,小明的名字用M表示。
那賦值完畢后如何進行取值呢?取值的方式很簡單,也是使用點運算符:
xiaoming.age
我們賦值完畢后輸出內容查看一下是否成功:
#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming; xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';printf(" age 為:%d\n",xiaoming.age);printf(" sex 為:%d\n",xiaoming.sex);printf(" name 為:%d\n",xiaoming.name);
}
運行結果如下:
結構體也可以直接在編寫的時候直接創建結構體變量:
struct human{int age;char sex;char name;} xiaoming;
以上代碼中直接在結構體末尾花括號之后,結束分號前創建了一個結構體變量,整體代碼:
#include<stdio.h>void main(){struct human{int age;char sex;char name;} xiaoming;xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';printf(" age 為:%d\n",xiaoming.age);printf(" sex 為:%d\n",xiaoming.sex);printf(" name 為:%d\n",xiaoming.name);
}
運行結果均為一致,也可以創建多個結構體變量:
#include<stdio.h>void main(){struct human{int age;char sex;char name;} xiaoming,xiaohong;xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';xiaohong.age=11;xiaohong.sex='M';xiaohong.name='H';printf("xiaohong age 為:%d\n",xiaoming.age);printf("xiaohong sex 為:%d\n",xiaoming.sex);printf("xiaohong name 為:%d\n",xiaoming.name);
}
運行結果為:
也可以在直接創建結構體變量的時候賦值:
struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong;
賦值在變量名后使用一個等于號,值使用一對花括號,花括號內編寫不同的值,并且用逗號進行分隔;也可以同時賦值2個結構體變量:
struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong={1,'M','H'};
整體代碼為:
#include<stdio.h>void main(){struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong={1,'M','H'};printf("xiaoming age 為:%d\n",xiaoming.age);printf("xiaoming sex 為:%d\n",xiaoming.sex);printf("xiaoming name 為:%d\n\n",xiaoming.name);printf("xiaohong age 為:%d\n",xiaohong.age);printf("xiaohong sex 為:%d\n",xiaohong.sex);printf("xiaohong name 為:%d\n",xiaohong.name);
}
運行結果為:
三、總結
- 了解C語言的結構體的的結構是一組不同類型數據的組合
- 了解C語言結構體的結構的賦值是使用點運算符對內的成員變量進行賦值
- 了解了多種結構體變量的賦值方法和取值方法,賦值可以在新建時賦值也可以在之后賦值,取值使用點運算符進行取值