1、C語言中結構體
結構體簡介
-在實際的處理對象中,有許多信息是由多個不同類型數組合一起進行描述,而且這些不同類型
的數據是互相聯繫組成了一個有機的整體。此時,就要用到一種新的構造類型數據--結構體
(srtucture),
簡稱結構
-結構體的使用為處理複雜的數據結構(如動態數據結構等),提供了有效的手段,且他們為函數
間傳遞不同類型的數據提供了方便。

結構體概念
-結構體是用戶自定義的新數據類型,有點像高級語言里的對像一樣
-例如:定義一個人的結構體,那麼這個結構體就有 身高、年齡、性別等
定義一個結構體類型的一般形式為
struct 結構名
{
數據類型 成員名1;
...
數據類型 成員名n;
}
例如:一個人的結構體
#include <stdio.h>
#include <string.h>
#define N 10
struct person{
int age;
int sex;
char name[N];
} p ;
int main(){
struct person p1,p2;
p1.age =25;
p1.sex =1;
strcpy(p1.name,"copy");
printf("%d %d,%sn",p1.age,p1.sex,p1.name);
return 0;
}
結構體大小
大小:一個結構體變數佔用內存的實際大小,也能用sizeof求出
sizeof(運算量)
例如:
sizeof(person p1) sizeof(p2)
2、C語言結構體數組
結構體數組:是指數組中的每個元bai素都是一個結構體

三種方式
一、先定義結構體類型,再定義結構體數組
struct 結構體名
{
成員表表;
};
struct 結構體名
例如:
struct person
{
int age;
ing sex;
char name[10];
};
sturct person p[3];
二、在定義結構體同時定義數組
struct 結構體名
{
成員表表;
} 數組名[元素個數];
例如:
{
int age;
ing sex;
char name[10];
}p[3];
三、直接定義結構體數組
struct
{
成員表表;
};
例如:
{
int age;
ing sex;
char name[10];
}p[3];
#include <stdio.h>
#include <string.h>
#define N 10
struct person{
int age;
int sex;
char name[N];
} p[2] ;
int main(){
p[1].age =10;
p[1].sex =1;
strcpy(p[1].name,"copy");
printf("%d %d,%sn",p[1].age,p[1].sex,p[1].name);
return 0;
}
3、結構體指針
可以設定一個指針變數用來指向一個結構體變數。些時該指針變數的值是結構體變數的起始地址
,該指針稱為結構體指針
一般形式:
struct 結構體名 *結構體指針名
註:其中的結構體名必須是已經定義的
#include <stdio.h>
#include <string.h>
#define N 10
struct person{
int age;
int sex;
char name[N];
} p[2] ;
int main(){
p[1].age =10;
p[1].sex =1;
strcpy(p[1].name,"copy");
struct person * p1;
p1 =&p[1];
printf("%d %d,%sn",p[1].age,p[1].sex,p[1].name);
printf("%d %d,%sn",p1->age,(*p1).sex,p1->name);
return 0;
}
使用 指針->屬性 或 (*<指針名>).屬性 取值
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233166.html