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語言排序
- C語言中結構體直接賦值?C語言結構體賦值
- C語言之環形佇列C語言佇列
- C語言之static關鍵字C語言
- C語言之輸入輸出C語言
- C語言結構體作為形參C語言結構體
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- C語言教程——03 C語言結構C語言
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- C語言之位段使用詳解C語言
- C語言之標準檔案操作C語言
- C語言之字串處理函式C語言字串函式
- “c語言+結構體+連結串列”實現名片系統C語言結構體
- C 結構體概述結構體
- C語言騷操作:結構體初始化方法C語言結構體
- C語言中結構體struct的對齊問題C語言結構體Struct
- c語言之解釋複雜指標C語言指標
- c語言之字串轉大寫聯絡C語言字串
- C 語言之布林型別介紹型別
- C語言之高階資料講解C語言
- C語言-選擇結構C語言
- C語言學習筆記:結構體與指標C語言筆記結構體指標
- Go 語言 結構體Go結構體
- 如何系統學習C 語言(中)之 結構體篇結構體
- C語言兩結構體之間的成員互換C語言結構體
- Go 語言 結構體連結串列Go結構體
- 【c++】結構體sort排序C++結構體排序
- C++ - 結構體轉cha*C++結構體
- c語言基礎筆記DAY7_結構體共用體列舉C語言筆記結構體