(一)定義結構體類型 1.用戶自己建立的由不同類型數據組成的組合型的數據結構稱為結構體如:struct Date{int month; int day; int year; };struct Student{int num; char name[20]; char sex; int age; str ...
(一)定義結構體類型
1.用戶自己建立的由不同類型數據組成的組合型的數據結構稱為結構體
如:
struct Date
{int month;
int day;
int year;
};
struct Student
{int num;
char name[20];
char sex;
int age;
struct Date birthday;
char addr[20];
};
結構體中的成員可以屬於另一個結構體類型,例如上例子中的birthday
這隻是建立了結構體類型,並沒有定義變數,所以系統對之也不分配存儲單元
(二)定義結構體類型變數
(1)先聲明類型,再定義變數
struct Student student1,student2;
(2) 聲明類型的同時定義變數
struct Student{
int num;
char name[20];
.............
}student1,student2;
(三)結構體變數初始化和引用
初始化小例子:
1 #include<stdio.h> 2 int main(){ 3 struct Student{ 4 long int num; 5 char name[20]; 6 char sex; 7 char addr[20]; 8 }a={1001,"Li",'M',"BeiJing"}; 9 printf("name:%s\naddress:%s\n",a.name,a.addr); 10 }
同類的結構體變數可以互相賦值 如:student1=student2
引用小例子:
1 #include<stdio.h> 2 int main(){ 3 struct student{ 4 int num; 5 char name[20]; 6 }student1; 7 scanf("%d%s",&student1.num,student1.name); 8 printf("學號:%d\n姓名:%s\n",student1.num,student1.name); 9 }
需要註意一點:scanf輸入num時有取值符,而輸入name時沒有,這是因為數組名本身就代表地址