C語言之結構體
宣告一個結構體型別的一般形式如下:
struct 結構體型別名
{
成員表列
};
結構體的型別可以有很多種,結構體型別中的成員由開發者自己定義,並且成員不用初始化。
另外,一個結構體成員可以屬於另一個結構體型別,例如:
struct TIME
{
int date;
int month;
int year;
int hour;
int min;
int sec;
};
struct nmea_msg
{
struct TIME utc;
char gpssta;
int longitude;
int latitude;
short speed;
short altitude;
};
定義結構體變數的方法有三種:
1.先宣告結構體型別,再定義該型別變數:
一般形式為:
struct 結構體型別名
{
成員表列
};
struct 結構體型別名 變數名錶列;
例如:
struct UDP_Server_Thread_Para
{
void *pData;
int Len;
};
struct UDP_Server_Thread_Para UDPThreadPara1,UDPThreadPara2;
一個在該定義方式下的程式例子:
#include<stdio.h>
struct UDP_Server_Thread_Para
{
void *pData;
int len;
};
int main()
{
struct UDP_Server_Thread_Para UDPThreadPara1,UDPThreadPara2;
UDPThreadPara1.pData = "hello";
UDPThreadPara1.len = 1;
UDPThreadPara2.pData = "world";
UDPThreadPara2.len = 2;
printf("UDPThreadPara1: %s, len %d\n", (char*)UDPThreadPara1.pData, UDPThreadPara1.len);
printf("UDPThreadPara2: %s, len %d\n", (char*)UDPThreadPara2.pData, UDPThreadPara2.len);
return 0;
}
2.在宣告的同時定義變數:
一般形式為:
struct 結構體型別名
{
成員表列
}變數名錶列;
例如:
struct UDP_Server_Thread_Para
{
void *pData;
int Len;
}UDPThreadPara1,UDPThreadPara2;
一個在該定義方式下的程式例子:
#include<stdio.h>
struct UDP_Server_Thread_Para
{
void *pData;
int len;
}UDPThreadPara1,UDPThreadPara2;
int main()
{
UDPThreadPara1.pData = "hello";
UDPThreadPara1.len = 1;
UDPThreadPara2.pData = "world";
UDPThreadPara2.len = 2;
struct UDP_Server_Thread_Para UDPThreadPara3; //新增該結構體型別變數
UDPThreadPara3.pData = "!!!!";
UDPThreadPara3.len = 3;
printf("UDPThreadPara1: %s, len %d\n", (char*)UDPThreadPara1.pData, UDPThreadPara1.len);
printf("UDPThreadPara2: %s, len %d\n", (char*)UDPThreadPara2.pData, UDPThreadPara2.len);
printf("UDPThreadPara3: %s, len %d\n", (char*)UDPThreadPara3.pData, UDPThreadPara3.len);
return 0;
}
3.不指定型別名直接定義結構體型別變數:
一般形式為:
struct
{
成員表列
}變數名錶列;
struct
{
void *pData;
int Len;
}UDPThreadPara1,UDPThreadPara2;
- 1
- 2
- 3
- 4
- 5
這種方式只能夠定義一次,不能再以此定義其它變數。
一個在該定義方式下的程式例子:
#include<stdio.h>
struct
{
void *pData;
int len;
}UDPThreadPara1,UDPThreadPara2;
int main()
{
UDPThreadPara1.pData = "hello";
UDPThreadPara1.len = 1;
UDPThreadPara2.pData = "world";
UDPThreadPara2.len = 2;
printf("UDPThreadPara1: %s, len %d\n", (char*)UDPThreadPara1.pData, UDPThreadPara1.len);
printf("UDPThreadPara2: %s, len %d\n", (char*)UDPThreadPara2.pData, UDPThreadPara2.len);
return 0;
}
相關文章
- go語言之結構體和方法Go結構體
- C++語言之結構體、類、建構函式、拷貝建構函式C++結構體函式
- C語言之雙向連結串列C語言
- C語言之單向連結串列C語言
- C語言(結構體)C語言結構體
- C語言之家C語言
- C語言中結構體感悟C語言結構體
- C++語法-結構體C++結構體
- C語言之動態記憶體管理C語言記憶體
- iOS開發系列--C語言之構造型別iOSC語言型別
- C語言結構體專題C語言結構體
- C語言之基本概念C語言
- C語言之氣泡排序C語言排序
- C語言之詭異字串C語言字串
- C語言中結構體直接賦值?C語言結構體賦值
- C語言之環形佇列C語言佇列
- C語言之字串與指標C語言字串指標
- C語言之static關鍵字C語言
- C語言之輸入輸出C語言
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- C語言結構體作為形參C語言結構體
- C語言_瞭解下結構體指標C語言結構體指標
- C 語言結構體的對齊原則結構體
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- C語言之位段使用詳解C語言
- C語言之標準檔案操作C語言
- C語言之霍夫曼編碼學習C語言
- C語言之字串處理函式C語言字串函式
- C語言教程——03 C語言結構C語言
- “c語言+結構體+連結串列”實現名片系統C語言結構體
- C 結構體概述結構體
- C#結構體C#結構體
- C語言中結構體struct的對齊問題C語言結構體Struct
- C語言騷操作:結構體初始化方法C語言結構體
- 失落的C語言結構體封裝藝術C語言結構體封裝
- C 語言之布林型別介紹型別
- c語言之解釋複雜指標C語言指標