程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 認識結構體,結構體

認識結構體,結構體

編輯:關於C語言

認識結構體,結構體


 

        ST用結構體的形式對寄存器組進行了封裝,因此對結構體有一定的認識和了解,也是學習固件庫的重要一步。

      在C語言中,結構體就是指一種數據結構,他可以被聲明為變量、指針或數組,用以實現復雜的數據結構。在MDK中有許多地方使用結構體以及結構體指針。

      結構體定義如下所示:

   Struct 結構體名{
                   成員列表:

                 }變量名列表;

     結構體類型名字=關鍵字struct+結構體名,結構體名由用戶指定,區別其他結構體類型。

     如下結構體:

    struct date                      //聲明一個結構體類型  
{
int month;
int day;
int year;
};
struce student //聲明一個結構體類型
{
int num;
int name[20];
int sex;
int age;
struct date birthday; //brithday是struct date類型
};

      這只是指定了一個結構體類型,他相當於一個模型,並無具體的數據,系統對其也不分配實際的內存單元,為了可以在程序中使用結構體類型數據,需要定義結構體類型變量,並在其中村放入數據。可以采取3中方法定義結構體類型變量:

1、先聲明結構體類型再定義變量

struct student student1,student2;

 

      如上已經定義一個結構體struct student,可以用它來定義變量,這種形式的定義有如"int a,b;"相似。

2、在聲明類型的同時定義變量

  struce student                 
{
int num;
int name[20];
int sex;
int age;
struct date birthday;
}student1,student2;


      這樣將聲明類型和定義變量放在一起進行,能夠直接看到結構體的結構,適合在寫小程序時使用這種方法。

 

 3、不指定類型名而直接定義結構體類型變量

 struct {
         int num;
         int name[20];
         int sex;
         int age;
         struct date birthday;      
        }student1,student2;

      這樣指定一個無名的結構體類型,不出現結構體名,因此無法再以此結構體類型去定義變量。

結構體變量的引用:

     在定義了結構體變量之後,就需要引用這個變量,那麼引用變量需要幾個規則:

     1、同類結構體可以互相賦值      如:   

                                     student1=student2;

      2、用若干結構體成員運算符一級一級找到最低級成員,而且只能對最低級成員進行賦值或存取運算,如:

                                    student1.num=10010;
                                    student1.birthday.year=2001;

     3、結構體變量成員可以像普通變量一樣進行各種運算,如:

                                   student1.score=student2.score;
                                   sum=student1.score+student2.score;

結構體變量初始化舉例:

#include<stdio.h>
void main()
{
  struct student
       {
           long int num;
           char name[20];
           char sex;
           car addr[20];       
       }a={10001,"li",'M',"beijing"}
  printf("No.:% ld\nname:% s\nsex:% c\naddress:% s\n",
             a.num,a.name,a.sex,a.addr);
}

   其運行結果如下:

No.: 10001
name: li
sex: M
address: beijing

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved