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;
}
使用 指針->屬性 或 (*<指針名>).屬性 取值
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。
發表評論
請登錄后評論...
登錄后才能評論