c語言基礎筆記DAY7_結構體共用體列舉
c語言基礎筆記DAY7_結構體共用體列舉
struct結構體
struct people
{
char name[128];
int age;
int height;
}a,b;
struct people c = {"Mike",28,178};
struct people d = {.age = 20}; //給部分成員初始化
- struct people是型別 , 沒有申請記憶體空間 , 所以不能在定義時給成員變數賦值
d=c;
是可以的. 相同型別的變數可以賦值
共用體(聯合體)
-
聯合union是一個能在同一個儲存空間儲存不同型別資料的型別;
-
聯合體所佔的記憶體長度等於其最長成員的長度倍數,也有叫做共用體;
-
同一記憶體段可以用來存放幾種不同型別的成員,但每一瞬時只有一種起作用;
-
共用體變數中起作用的成員是最後一次存放的成員,在存入一個新的成員後原有的成員的值會被覆蓋;
-
共用體變數的地址和它的各成員的地址都是同一地址。
#include <stdio.h>
//共用體也叫聯合體
union Test
{
unsigned char a;
unsigned int b;
unsigned short c;
};
int main()
{
//定義共用體變數
union Test tmp;
//1、所有成員的首地址是一樣的
printf("%p, %p, %p\n", &(tmp.a), &(tmp.b), &(tmp.c));
//2、共用體大小為最大成員型別的大小
printf("%lu\n", sizeof(union Test));
//3、一個成員賦值,會影響另外的成員
//左邊是高位,右邊是低位
//低位放低地址,高位放高地址
tmp.b = 0x44332211;
printf("%x\n", tmp.a); //11
printf("%x\n", tmp.c); //2211
tmp.a = 0x00;
printf("short: %x\n", tmp.c); //2200
printf("int: %x\n", tmp.b); //44332200
return 0;
}
引申
大小端
小端: 低位存低地址記憶體
大端: 高位存低地址記憶體
- 大型伺服器與網路資料 大端
- 小型的計算機 小端
列舉
- 列舉:將變數的值一一列舉出來,變數的值只限於列舉出來的值的範圍內。
列舉型別定義:
enum 列舉名
{
列舉值表
};
-
在列舉值表中應列出所有可用值,也稱為列舉元素。
-
列舉值是常量,不能在程式中用賦值語句再對它賦值。
-
舉元素本身由系統定義了一個表示序號的數值從0開始順序定義為0,1,2 …
#include <stdio.h>
enum weekday
{
sun = 2, mon, tue, wed, thu, fri, sat
} ;
enum bool
{
flase, true
};
int *main*()
{
enum weekday a, b, c;
a = sun;
b = mon;
c = tue;
*printf*("%d,%d,%d\n", a, b, c);
enum bool flag;
flag = true;
if (flag == 1)
{
*printf*("flag為真\n");
}
return 0;
}
相關文章
- C語言 共用體C語言
- C語言(共用體型別)C語言型別
- C語言記憶體地址基礎C語言記憶體
- 實驗6 C語言結構體、列舉應用程式設計C語言結構體程式設計
- c++結構體、共用體(聯合體)C++結構體
- C語言 第八章 結構體與共用體 重點 典型題C語言結構體
- C語言學習筆記:結構體與指標C語言筆記結構體指標
- C語言(結構體)C語言結構體
- 實驗6_C語言結構體、列舉應用程式設計C語言結構體程式設計
- Android NDK開發之旅6 C語言基礎 聯合體與列舉AndroidC語言
- 結構體與共用體結構體
- C語言實現通訊錄管理系統(結構體、列舉、聯合體應用)C語言結構體
- Android NDK開發之旅5 C語言基礎 結構體AndroidC語言結構體
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- [C++]結構體、共同體和列舉型別C++結構體型別
- iOS學習筆記44 Swift(四)列舉和結構體iOS筆記Swift結構體
- C語言結構體專題C語言結構體
- c語言程式基礎學習筆記C語言筆記
- 結構體,列舉,聯合結構體
- Partial類、列舉、結構體結構體
- Go語言學習筆記 - PART7 - 結構體Go筆記結構體
- Solidity語言學習筆記————15、結構體StructSolid筆記結構體Struct
- C語言基礎-1、陣列C語言陣列
- c語言列舉詳解C語言
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- C語言結構體作為形參C語言結構體
- C語言_瞭解下結構體指標C語言結構體指標
- 慕課網-LinuxC語言結構體-學習筆記LinuxC語言結構體筆記
- Go 語言 結構體Go結構體
- 重學C語言_資料結構與基礎語法C語言資料結構
- C語言結構體及函式傳遞陣列引數示例C語言結構體函式陣列
- C語言程式設計讀書筆記:結構C語言程式設計筆記
- C語言_資料結構圖(留個筆記)C語言資料結構筆記
- C 語言結構體的對齊原則結構體
- 【基礎篇記憶體結構】oracle10g記憶體結構(一)記憶體Oracle
- C語言之結構體C語言結構體
- Go語言結構體(struct)物件導向程式設計基礎篇Go結構體Struct物件程式設計